home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #2 / Monster Media No. 2 (Monster Media)(1994).ISO / maximus / mpm1_20.zip / MAXFMPM.INF (.txt) < prev    next >
OS/2 Help File  |  1994-07-16  |  79KB  |  2,421 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. OverView ΓòÉΓòÉΓòÉ
  3.  
  4.                             MaxFile/PM - Version 1.20
  5.  
  6.  
  7.                   A FILES.BBS Manager for Presentation Manager
  8.                     Copyright (C) 1993,1994 by Craig Morrison
  9.                               All Rights Reserved.
  10.  
  11.   Portions of the header files used in compilation are:
  12.  
  13.    Copyright (C) 1992 by Scott Dudley
  14.    Copyright (C) 1993 by Aki Antman
  15.    Copyright (C) 1994 by Marco Maccaferri
  16.  
  17.   MSGAPI portions of the Announce Files option are:
  18.  
  19.    Copyright 1991,94 by Scott J. Dudley.  All rights reserved.
  20.    "Squish" and "Maximus" are trademarks of SCI Communications.
  21.  
  22.   From the Development Team of:
  23.  
  24.    Craig Morrison - MaxFile/PM Development
  25.     1:201/60@fidonet.org
  26.  
  27.    Ronald Van Iwaarden - MaxFile/2 Development
  28.     1:104/338@fidonet.org
  29.  
  30.  
  31. ΓòÉΓòÉΓòÉ 1.1. Special Thanks ΓòÉΓòÉΓòÉ
  32.  
  33.  Mark Kimes
  34.  
  35.  For putting up with my never ending questions and general bull-headedness
  36.  when it comes to programming under OS/2. (Very handy guy to talk to when it
  37.  comes to programming in general!)
  38.  
  39.  Elliott Goodman
  40.  
  41.  Beta Tester (Thanks a BUNCH! Notice the name TWO t's! ;-)
  42.  ANNOUNCE.CMD Author
  43.  
  44.  Philip Perlman
  45.  
  46.  Beta Tester (You to Phil! Couldn't have done it without ya's!)
  47.  
  48.  Ronald Van Iwaarden
  49.  
  50.  Cohort in crime and Beta Tester
  51.  
  52.  
  53. ΓòÉΓòÉΓòÉ 1.2. OS/2 Version Information ΓòÉΓòÉΓòÉ
  54.  
  55. NOTICE TO OS/2 SERVICE PACK USERS 
  56.  
  57. The incompatibility problems experienced with the service pack have been 
  58. addressed. MaxFile/PM should now run on stock 2.1 GA code and 2.11 whether it 
  59. be 2.10 with the XR06200 level CSDs or the 2.11 SE. 
  60.  
  61. I make NO guarantee that MaxFile/PM will run reliably under OS/2 version 2.11. 
  62. IBM broke OS/2 for many, many people when the CSDs were released for the 
  63. XR06200 level. 
  64.  
  65. I have been testing MaxFile/PM with 2.11 installed, so far it works as 
  66. advertised. As with everything else, your mileage may vary. 
  67.  
  68. MaxFile/PM will run reliably under the Performance Beta I, at least it has for 
  69. the testing that I have done. 
  70.  
  71.  
  72. ΓòÉΓòÉΓòÉ 1.3. Forward ΓòÉΓòÉΓòÉ
  73.  
  74. MaxFile/PM is a FILES.BBS manager that runs under Presentation Manager. While 
  75. it was written with the Maximus-CBCS in mind, any BBS software package that 
  76. uses the standard FILES.BBS format is supported. 
  77.  
  78. A short list of the features are: 
  79.  
  80.     1. Drag and Drop between file areas 
  81.  
  82.     2. FILE_ID.DIZ import 
  83.  
  84.     3. Rearchiving files 
  85.  
  86.     4. Sorting by: 
  87.  
  88.       Name 
  89.       Date 
  90.       Size 
  91.       Description 
  92.  
  93.     5. In-place editing of file descriptions 
  94.  
  95.     6. Renaming files 
  96.  
  97.     7. Full REXX Macro Integration 
  98.  
  99.  
  100. ΓòÉΓòÉΓòÉ 1.4. Support ΓòÉΓòÉΓòÉ
  101.  
  102. If you need to contact me about the program I can be reached in a number of 
  103. places. NetMail will get you the fastest response, but I read the OS2PRODSUP, 
  104. OS2BBS and MUFFIN conferences everyday and intend on answering any questions 
  105. posted there. There is also a local conference on my BBS called MFILEPMSUP that 
  106. you are more than welcome to poll for. Contact either myself, Elliott Goodman 
  107. at 1:102/1319 or Pete Norloff at 1:109/347 for more information about getting 
  108. hooked up. 
  109.  
  110. Due to the large cost in crashing netmail all over the world I will only be 
  111. sending replies out crash to registered users who report a problem. Sorry 
  112. folks, but most of my income is generated by these projects. If they don't get 
  113. registered I can't provide free support. I will respond to everyone who sends 
  114. netmail, but it will be routed netmail in most cases. 
  115.  
  116. While I will answer questions from those of you who have not registered the 
  117. program, you will get a much quicker response from me if you have. 
  118.  
  119. I *will* support MaxFile/PM, all you need to do is ask. 
  120.  
  121.  
  122. ΓòÉΓòÉΓòÉ 2. Registration ΓòÉΓòÉΓòÉ
  123.  
  124. I'm going to keep this short, sweet and to the point. It is $25 to register the 
  125. program. You may use this version of MaxFile/PM for 45 days from the day you 
  126. first run it. After the 45 day evaluation period it will no longer operate. 
  127.  
  128. MaxFile/PM is not freeware, it is shareware, you are expected to register the 
  129. program if you continue using it. 
  130.  
  131. Please print out and read the REGISTER.FRM file that is included in the archive 
  132. for more information on registering the program. 
  133.  
  134. Registration provides me with the incentive to keep working on the program, 
  135. it's all up to you folks that use the program. I treat registered users VERY 
  136. well. 
  137.  
  138. 'Nuff said... 
  139.  
  140.  
  141. ΓòÉΓòÉΓòÉ 3. License Information ΓòÉΓòÉΓòÉ
  142.  
  143.             MaxFile/PM LICENSE FOR USE AND DISTRIBUTION
  144.  
  145.       MaxFile/PM is not public domain software, nor is it free
  146.       software.
  147.  
  148.       MaxFile/PM is copyright (C) 1993,94 by Craig A. Morrison.
  149.       All Rights Reserved.
  150.  
  151.       Non-registered users are granted a limited license to use
  152.       MaxFile/PM on a trial basis, for a period not to exceed 45 days,
  153.       for the purpose of determining whether MaxFile/PM is suitable for
  154.       their needs.  Use of MaxFile/PM, except for this limited purpose,
  155.       requires registration.  Use of non-registered copies of
  156.       MaxFile/PM by any person, business, corporation, governmental
  157.       agency or other entity institution is strictly forbidden.
  158.  
  159.       Registration grants a user the right to use MaxFile/PM only on
  160.       a single computer; a registered user may use the program on a
  161.       different computer, but may not use the program on more than one
  162.       computer at the same time.
  163.  
  164.       No one may modify MaxFile/PM in any way, including but not
  165.       limited to decompiling, disassembling or otherwise reverse
  166.       engineering the program.
  167.  
  168.       All users are granted a limited license to copy MaxFile/PM
  169.       only for the trial use of others subject to the above
  170.       limitations, and also the following:
  171.  
  172.          MaxFile/PM must be copied in unmodified form, complete
  173.          with all contents of the original distribution archive.
  174.          Bulletin board system operators (Sysops) are granted
  175.          permission to convert the distribution archive to another
  176.          format so long as the complete contents of the original
  177.          archive are transferred in whole.
  178.  
  179.          No fee, charge or other compensation may be accepted or
  180.          requested by any licensee.
  181.  
  182.          MaxFile/PM may not be distributed in conjunction with any
  183.          other product without the prior written consent of the
  184.          author.
  185.  
  186.       Operators of electronic bulletin board systems may post
  187.       MaxFile/PM for downloading by their users only as long as the
  188.       above conditions are met.
  189.  
  190.       Distributors of public domain or user supported software may
  191.       distribute copies of MaxFile/PM subject to the above
  192.       conditions.
  193.  
  194.  
  195. ΓòÉΓòÉΓòÉ 4. Before You Start - READ THIS! ΓòÉΓòÉΓòÉ
  196.  
  197. The default installation of OS/2 defines Mouse Button 1 as the left button and 
  198. Mouse Button 2 as the right button. Please keep this in mind as you read 
  199. through this document if you have redefined your mouse buttons. 
  200.  
  201. MSGAPI32.DLL is REQUIRED for this release of MaxFile/PM. This DLL can be found 
  202. in Scott Dudley's Squish Mail 1.10 Processor package. Look for an archive named 
  203. SQSHP110.LZH. 
  204.  
  205. A word to the wise here.. 
  206.  
  207. BACKUP *BEFORE* USING MAXFILE/PM ! 
  208.  
  209. Here comes the standard disclaimer...I don't promise that MaxFile/PM will do 
  210. anything for you except take up space on your hard drive. While I am fairly 
  211. certain I have got all the nasties out of it, there is a chance that I may have 
  212. missed something. So please be safe and backup prior to using the program. 
  213. Suffice it to say, you have been warned.. 
  214.  
  215. See also: OS/2 Version Information 
  216.  
  217.  
  218. ΓòÉΓòÉΓòÉ 5. Configuring MaxFile/PM ΓòÉΓòÉΓòÉ
  219.  
  220. To configure MaxFile/PM for use, simply start MaxFile/PM by typing MAXFMPM and 
  221. pressing ENTER at an OS/2 Command Prompt. The MaxFile/PM Settings notebook will 
  222. be presented for you, so that you can enter the vital information about your 
  223. system and BBS setup. 
  224.  
  225. The Settings Notebook is where you configure MaxFile/PM so that it fits your 
  226. particular system. There are a lot of options here, some required, some not, 
  227. all depending on whether you want to be able to use that particular feature or 
  228. not. There are 5 major categories of information here; Main, Adopt, Archivers, 
  229. Viewers and Other. Some of the categories have more than one page devoted to 
  230. them. A detailed discussion of the categories follows. 
  231.  
  232.  
  233. ΓòÉΓòÉΓòÉ 5.1. Settings/Main - Basic information ΓòÉΓòÉΓòÉ
  234.  
  235. The Main section of the notebook consists of two pages that contain the 
  236. information that tells MaxFile/PM the basics about your BBS configuration and 
  237. how to handle certain options. 
  238.  
  239.  
  240. ΓòÉΓòÉΓòÉ 5.1.1. Main - Page 1 ΓòÉΓòÉΓòÉ
  241.  
  242. This sections covers Main Page 1 of the settings notebook. It contains the 
  243. basics of your BBS configuration. 
  244.  
  245.  
  246. ΓòÉΓòÉΓòÉ 5.1.1.1. Registration Key ΓòÉΓòÉΓòÉ
  247.  
  248. Your registration key, if you have one. If not leave it blank. Make sure if you 
  249. have registered an earlier version of MaxFile/PM that you contact me to obtain 
  250. a new key. 
  251.  
  252. Enter the registration key exactly the same as it is given to you. 
  253.  
  254.  
  255. ΓòÉΓòÉΓòÉ 5.1.1.2. Registration Name ΓòÉΓòÉΓòÉ
  256.  
  257. Your name, this works in conjunction with the Registration Key field. 
  258. MaxFile/PM hashes your name against your Key to see if you really are a 
  259. registered user. 
  260.  
  261. The Registration XXXX fields when filled out properly, stop the Product 
  262. Information dialog from appearing as a registration incentive and will also 
  263. stop the usage timer. 
  264.  
  265.  
  266. ΓòÉΓòÉΓòÉ 5.1.1.3. BBS Package ΓòÉΓòÉΓòÉ
  267.  
  268. Four choices here: 
  269.  
  270.    Maximus 
  271.    Lora 
  272.    SuperBBS 
  273.    Generic 
  274.  
  275. Simply select one from the drop down list box. Or type in one of the names in 
  276. the list above. 
  277.  
  278.  
  279. ΓòÉΓòÉΓòÉ 5.1.1.4. BBS Directory ΓòÉΓòÉΓòÉ
  280.  
  281. This is the directory that your BBS software resides in. Enter the FULL path 
  282. specification. 
  283.  
  284.  
  285. ΓòÉΓòÉΓòÉ 5.1.1.5. Temp Directory ΓòÉΓòÉΓòÉ
  286.  
  287. This is the FULL path to an EXISTING directory that MaxFile/PM can use to store 
  288. temporary files in and use for rearchiving files. Don't use this directory for 
  289. ANYTHING else while MaxFile/PM is running. EVERYTHING, INCLUDING ANY 
  290. SUB-DIRECTORIES WILL BE REMOVED BY Maxfile/PM IF YOU REARCHIVE ANY FILES. 
  291.  
  292.  
  293. ΓòÉΓòÉΓòÉ 5.1.1.6. File Area Data ΓòÉΓòÉΓòÉ
  294.  
  295. This is the FULL path and filename of the file that contains your file area 
  296. definitions. For Maximus 2.xx users this will be AREA.DAT, for Lora users this 
  297. will SYSFILE.DAT, for SuperBBS users this will be FLSEARCH.BBS, for those using 
  298. the Generic setup this should be the name of the text file you created 
  299. according the guidelines in the Generic File Area Definitions section. 
  300.  
  301.  
  302. ΓòÉΓòÉΓòÉ 5.1.2. Main - Page 2 ΓòÉΓòÉΓòÉ
  303.  
  304. This sections covers Main Page 2. This page contains the settings that control 
  305. the overall operation of MaxFile/PM. Such as window defaults, etc.. 
  306.  
  307.  
  308. ΓòÉΓòÉΓòÉ 5.1.2.1. AutoSave ΓòÉΓòÉΓòÉ
  309.  
  310. This tells MaxFile/PM whether or not you want your FILES.BBS files 
  311. automatically saved when you close a file area. If you check this option 
  312. MaxFile/PM will save the FILES.BBS for you as soon as you close the window 
  313. associated with a FILES.BBS, if not, it will prompt you and ask if you want the 
  314. information saved. 
  315.  
  316.  
  317. ΓòÉΓòÉΓòÉ 5.1.2.2. Button Bar ΓòÉΓòÉΓòÉ
  318.  
  319. This check box tells MaxFile/PM whether or not you want the button bar turned 
  320. on in your FILES.BBS windows. 
  321.  
  322.  
  323. ΓòÉΓòÉΓòÉ 5.1.2.3. Header Size ΓòÉΓòÉΓòÉ
  324.  
  325. For those of you using programs such as DownSort, this option will allow you to 
  326. tell MaxFile/PM how many lines at the beginning of your FILES.BBS to skip when 
  327. reading them in. The headers ARE preserved when MaxFile/PM writes out a new 
  328. FILES.BBS. 
  329.  
  330.  
  331. ΓòÉΓòÉΓòÉ 5.1.2.4. ED Marker ΓòÉΓòÉΓòÉ
  332.  
  333. For those BBS packages that support extended descriptions this option will come 
  334. in handy. Here you tell MaxFile/PM what character is associated with extended 
  335. descriptions for your BBS Package. This character can not be a space or a dash. 
  336.  
  337. Defining this character causes a few changes in the way MaxFile/PM handles your 
  338. file descriptions. When this option is used, file descriptions are allowed to 
  339. be up to 1024 characters in length and nothing is stripped from FILE_ID.DIZ 
  340. descriptions read in from archives. MaxFile/PM does not insert this character 
  341. in multiple line descriptions for you, you need to do this. However, when you 
  342. use Format Description MaxFile/PM will take care of putting this character 
  343. where it belongs. 
  344.  
  345. If this character is not defined, file descriptions are limited to 255 
  346. characters, any non-printable ASCII characters (0-31), any high-bit ASCII 
  347. characters (127-255) and extra whitespace are stripped from the file 
  348. description. 
  349.  
  350.  
  351. ΓòÉΓòÉΓòÉ 5.1.2.5. Default Description ΓòÉΓòÉΓòÉ
  352.  
  353. You may enter up to 80 characters for a default description. This text will get 
  354. used any time you Insert, Adopt or drop files from an outside source into a 
  355. window in MaxFile/PM and those files meet the following criteria: 1, they are 
  356. not an archive or 2, they are an archive and the archive does not contain a 
  357. FILE_ID.DIZ description inside of it. 
  358.  
  359.  
  360. ΓòÉΓòÉΓòÉ 5.1.2.6. File Database Utility ΓòÉΓòÉΓòÉ
  361.  
  362. The next field is for the filename of your File Database Utility. For Maximus 
  363. this will be either FB.EXE or FBP.EXE. On my system I have this set to FBP, 
  364. since the utility is in my path. For Lora-BBS users, this will be FILEIDX.EXE. 
  365. Please see the Known Problems section at the end of this document for more 
  366. information about FILEIDX.EXE. For SuperBBS users, I don't have a clue. If 
  367. someone would fill me in on this one I'd really appreciate it! This entry is 
  368. only required if you want MaxFile/PM to run the utility for you. 
  369.  
  370.  
  371. ΓòÉΓòÉΓòÉ 5.1.2.7. Run FD Utility ΓòÉΓòÉΓòÉ
  372.  
  373. The options for Run FD Utility determine when and if the File Database utility 
  374. will get run. There are three; Always, Prompt and Never. Always will run your 
  375. file database utility every time you exit MaxFile/PM. If no changes have been 
  376. made, it will prompt you before running it. Prompt will ask you if you wish to 
  377. run it. Do I need to explain Never? :-} 
  378.  
  379.  
  380. ΓòÉΓòÉΓòÉ 5.1.2.8. Display ΓòÉΓòÉΓòÉ
  381.  
  382. The Display options control whether or not the file size and date information 
  383. gets displayed for your files in the FILES.BBS windows. Simply check or uncheck 
  384. the check boxes to set your preferences. 
  385.  
  386.  
  387. ΓòÉΓòÉΓòÉ 5.2. Settings/Adopt - Adopting Files ΓòÉΓòÉΓòÉ
  388.  
  389. This section covers the basic information needed when MaxFile/PM adopts files. 
  390.  
  391.  
  392. ΓòÉΓòÉΓòÉ 5.2.1. Extensions edit control ΓòÉΓòÉΓòÉ
  393.  
  394. This is a simple edit control that you use to enter in the extensions that you 
  395. want add to the list box to the right. You may enter up to 3 characters for 
  396. each extension, wild cards are allowed. These extensions are used while 
  397. adopting files, anything not defined here will be ignored. These extensions are 
  398. use when you perform an Adopt from the FILES.BBS window context menu or you 
  399. have Auto Adopt turned on. 
  400.  
  401.  
  402. ΓòÉΓòÉΓòÉ 5.2.2. Add button ΓòÉΓòÉΓòÉ
  403.  
  404. After entering an extension in the edit control click this button to add it to 
  405. the list of extensions in the list box. 
  406.  
  407.  
  408. ΓòÉΓòÉΓòÉ 5.2.3. Remove button ΓòÉΓòÉΓòÉ
  409.  
  410. This button allows you to remove an entry from the list box. Simply highlight 
  411. the entry you want to remove from the list box and click here. 
  412.  
  413.  
  414. ΓòÉΓòÉΓòÉ 5.2.4. Auto Adopt ΓòÉΓòÉΓòÉ
  415.  
  416. This check box tells MaxFile/PM if you want it to automatically perform an 
  417. Adopt when a file area is first opened. This only works if you have actually 
  418. added at least one extension for MaxFile/PM to scan for. 
  419.  
  420.  
  421. ΓòÉΓòÉΓòÉ 5.2.5. Download counters ΓòÉΓòÉΓòÉ
  422.  
  423. If you want download counters added to the description of files that get 
  424. adopted, check this box. Currently this is hard coded to [___], in the future 
  425. this may be made configurable if enough people ask for it. 
  426.  
  427.  
  428. ΓòÉΓòÉΓòÉ 5.3. Settings/Archivers - Archiver Information ΓòÉΓòÉΓòÉ
  429.  
  430. This section causes the most confusion when configuring MaxFile/PM. The best I 
  431. can do to help is to tell you what I use here on my system to give you a few 
  432. hints. 
  433.  
  434. There are eight pages, one each for; Zip, Arj, Lzh, Arc, HA, RAR, UC2 and ZOO. 
  435. I don't use HA, RAR or UC2 so you are on your own with these archivers. 
  436.  
  437. You will need to enter the executable name and the appropriate switches for 
  438. each of the actions for each archiver. You should include any switches 
  439. necessary for recursing sub-directories and if you want to make MaxFile/PM's 
  440. job a little easier, any switches to tell the archivers to 'move' files into 
  441. archives when adding to or creating a new archive. Below I will give a short 
  442. description of each entry and the settings for the archivers I use. You will 
  443. have MUCH better success with OS/2 based archivers. 
  444.  
  445. NOTE: Each of the archivers you use must be able to accept filenames on the 
  446. command line other than just the archive name. Some versions of UNARJ do not 
  447. allow you to do this. F'REQ GNUNARJ.* from me if you need an updated version 
  448. that allows filenames. 
  449.  
  450. I also believe I have gotten the DOS kludge worked around in the code. So you 
  451. should be able to just define your DOS archivers just like OS/2 based 
  452. archivers, I.E, PKUNZIP -v, for listing an archive. The settings for the DOS 
  453. archivers below worked for me for what little time I spent with them. 
  454.  
  455.  
  456. ΓòÉΓòÉΓòÉ 5.3.1. Extract ΓòÉΓòÉΓòÉ
  457.  
  458. This entry should contain the command and switches necessary to extract a file 
  459. from an archive. 
  460.  
  461.  
  462.  ZIP                  unzip -xo -U
  463.  
  464.  ARJ                  unarj e
  465.  
  466.  ARJ                  ARJ x -y
  467.  
  468.  LZH                  lh x /o
  469.  
  470.  ARC                  arc x
  471.  
  472.  RAR                  rar -o+ -y
  473.  
  474.  HA                   ha ey
  475.  
  476.  UC2                  uc2 ESF
  477.  
  478.  ZOO                  zoo xO
  479.  
  480.  
  481. ΓòÉΓòÉΓòÉ 5.3.2. Add ΓòÉΓòÉΓòÉ
  482.  
  483. This entry should contain the command and switches necessary to add files to an 
  484. archive. 
  485.  
  486.  
  487.  ZIP                  zip -9 -r
  488.  
  489.  ARJ                  ARJ a -r -y
  490.  
  491.  LZH                  lh a /o
  492.  
  493.  ARC                  arc a
  494.  
  495.  RAR                  RAR a -r -y -ep1
  496.  
  497.  HA                   ha a12rd
  498.  
  499.  UC2                  UC2 uc ASF
  500.  
  501.  ZOO                  zoo ah
  502.  
  503.  
  504. ΓòÉΓòÉΓòÉ 5.3.3. List ΓòÉΓòÉΓòÉ
  505.  
  506. This entry should contain the command and switches necessary to list the files 
  507. in an archive to standard output. 
  508.  
  509.  
  510.  ZIP                  unzip -v
  511.  
  512.  ARJ                  unarj l
  513.  
  514.  ARJ                  ARJ v -y
  515.  
  516.  LZH                  lh l /o
  517.  
  518.  ARC                  arc l
  519.  
  520.  RAR                  RAR v -y
  521.  
  522.  HA                   HA l
  523.  
  524.  UC2                  UC2 VS
  525.  
  526.  ZOO                  zoo L
  527.  
  528.  
  529. ΓòÉΓòÉΓòÉ 5.3.4. Test ΓòÉΓòÉΓòÉ
  530.  
  531. This entry should contain the command and switches necessary to test the 
  532. integrity of an archive with the output going to standard output. 
  533.  
  534.  
  535.  ZIP                  unzip -t
  536.  
  537.  ARJ                  unarj t
  538.  
  539.  ARJ                  arj t -y
  540.  
  541.  LZH                  lh t /o
  542.  
  543.  ARC                  arc v
  544.  
  545.  RAR                  RAR t -std -y
  546.  
  547.  HA                   HA t
  548.  
  549.  UC2                  UC2 TF
  550.  
  551.  ZOO                  zoo xN
  552.  
  553.  
  554. ΓòÉΓòÉΓòÉ 5.4. Settings/Viewers - File Viewers ΓòÉΓòÉΓòÉ
  555.  
  556. Here you can define viewers for use with the View function in a FILES.BBS 
  557. window. Enter the filename and any necessary switches for each of the programs. 
  558.  
  559. There are entries for the following file types: 
  560.  
  561.    GIF 
  562.    PCX 
  563.    JPG 
  564.    TIF 
  565.    BMP 
  566.    Other 
  567.  
  568. The 'Other' entry catches anything that is not an archive, GIF, PCX, JPG, TIF 
  569. or BMP file. I.E, text files. 
  570.  
  571.  
  572. ΓòÉΓòÉΓòÉ 5.5. Settings/Other - Other Programs. ΓòÉΓòÉΓòÉ
  573.  
  574. This section covers those items I just couldn't figure out where else to put. 
  575.  
  576.  
  577. ΓòÉΓòÉΓòÉ 5.5.1. Virus Scanner ΓòÉΓòÉΓòÉ
  578.  
  579. This should be the name of the program to scan files for viruses, make sure to 
  580. include any necessary switches. 
  581.  
  582. NOTE: MaxFile/PM does NOT extract files from the archives. You will need to do 
  583. this, or use a utility that can do it for you. 
  584.  
  585.  
  586. ΓòÉΓòÉΓòÉ 5.5.2. Shift F<xx> ΓòÉΓòÉΓòÉ
  587.  
  588. Five entries here, one each for: 
  589.  
  590.    Shift F6 
  591.    Shift F7 
  592.    Shift F8 
  593.    Shift F9 
  594.    Shift F10 
  595.  
  596. These five entries are for things I may have overlooked or for some special 
  597. processing that you would like to do to a file. Enter the program name and any 
  598. switches they need. When in a FILES.BBS window and you press one of the above 
  599. keystrokes, the appropriate entry will get started with one of the selected 
  600. files as a parameter on its command line, this will continue one file at a time 
  601. until all of the selected files have been processed. 
  602.  
  603.  
  604. ΓòÉΓòÉΓòÉ 5.6. Generic File Area Definitions ΓòÉΓòÉΓòÉ
  605.  
  606.  To provide support for any BBS system that uses the standard FILES.BBS format 
  607. for their file listings I have come up with a very simple text file format that 
  608. will allow you to tell MaxFile/PM how your file areas are defined. 
  609.  
  610.  The file is made up of a verb that tells MaxFile/PM how many areas it can 
  611. expect to find in the text file. Each successive line after that verb defines 
  612. the file areas themselves. A sample file is shown below: 
  613.  
  614. ----------------------------- AREAS.CFG sample --------------------------------
  615. AreaCount 5
  616. 0 d:\max\file\uncheck    d:\max\file\uncheck\files.bbs    Unchecked Uploads
  617. 1 d:\max\file\max        d:\max\file\max\files.bbs        BBS Stuff
  618. 2 d:\max\file\dos\games  d:\max\file\dos\games\files.bbs  Dos Games
  619. 3 d:\max\file\os2\util   d:\max\file\os2\util\files.bbs   OS/2 Utilities
  620. 4 d:\max\file\os2\apps   d:\max\file\os2\apps\files.bbs   OS/2 Applications
  621. -------------------------------------------------------------------------------
  622.  
  623.  The 'AreaCount' keyword tells MaxFile/PM how many area definitions it can 
  624. expect to find in the file. The AreaCount keyword must come BEFORE the area 
  625. definition lines. 
  626.  
  627. The format for each area definition line is: 
  628.  
  629.   <area tag> <file path> <list name> <area description>
  630.  
  631. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  632.  <area tag>           Is a short name to identify the file area.
  633.  
  634.  <file path>          Is the path to the files.
  635.  
  636.  <list name>          Is the full drive:\path and filename of the
  637.                       FILES.BBS for the area.
  638.  
  639.  <area description>   Is a short description of the area.
  640. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  641.  
  642.  You can name this file what ever you wish, just make sure you specify the name 
  643. of this file for the File Area Data option in the Settings notebook and make 
  644. sure the BBS Package is set to 'Generic'. 
  645.  
  646.  
  647. ΓòÉΓòÉΓòÉ 6. Using MaxFile/PM ΓòÉΓòÉΓòÉ
  648.  
  649. When MaxFile/PM first comes up a window will be displayed that contains all of 
  650. your file areas. I will be referring to this window by the term File Area 
  651. Window throughout the rest of this document. 
  652.  
  653. When you open up a file area, a window that is very similar in appearance to 
  654. the File Area window will appear. This window will contain all the files listed 
  655. in the FILES.BBS for that area. These windows will be referred to as FILES.BBS 
  656. Windows from here on out. 
  657.  
  658.  
  659. ΓòÉΓòÉΓòÉ 6.1. Selecting Items ΓòÉΓòÉΓòÉ
  660.  
  661. Perhaps the most confusing part of working in a window is selecting or 
  662. deselecting items. I wrote the program and I still have to think about it. 
  663.  
  664. Basically it works like this; Clicking mouse button 1 on an item selects it and 
  665. clears the selection from any other items in the window. To select multiple 
  666. items in the window, press mouse button 1 on the first item you want selected 
  667. and hold it down while you drag the mouse cursor. This allows you to select a 
  668. contiguous range of items. 
  669.  
  670. If you want to select multiple items and they aren't adjacent to each other, 
  671. hold down the CTRL key while you click mouse button 1 on each item. If the item 
  672. is not selected it will become selected, if the item is already selected the 
  673. selection is cleared for that item. 
  674.  
  675.  
  676. ΓòÉΓòÉΓòÉ 6.2. Drag and Drop/Moving Files ΓòÉΓòÉΓòÉ
  677.  
  678.                 * THIS IS HOW YOU MOVE FILES BETWEEN FILE AREAS *
  679.  
  680. Remember, MaxFile/PM is a Workplace Shell and Presentation Manager friendly 
  681. program. The basic operations of changing, editing and moving objects work the 
  682. same way. 
  683.  
  684. A drag operation is started by pressing mouse button 2 down and dragging the 
  685. mouse cursor. The operation is considered complete when you release mouse 
  686. button 2. Should you wish to abort the drag, press the ESC key on your 
  687. keyboard. 
  688.  
  689. You will need to make sure that both the source and destination windows are 
  690. visible on your display. 
  691.  
  692. You can drag files from anywhere on your system and drop them either on a 
  693. FILES.BBS window or onto the File Area window. When dropping on an open 
  694. FILES.BBS window, the files are inserted into the FILES.BBS at the point at 
  695. which they were dropped. When dropping on the File Area window, the files are 
  696. inserted at the end of the FILES.BBS for the area they are dropped on. 
  697.  
  698. You can also rearrange the items in a FILES.BBS window by selecting them, then 
  699. dragging them and dropping them where you want them to be. 
  700.  
  701. Many of you have asked about this one...To delete one or more items from a 
  702. FILES.BBS window; highlight the items you want deleted, then drag them to the 
  703. shredder object and delete them. Or, alternatively you can use the Remove Items 
  704. option on the context menu. 
  705.  
  706.  
  707. ΓòÉΓòÉΓòÉ 6.3. File Area Window ΓòÉΓòÉΓòÉ
  708.  
  709. The File Area window serves two basic purposes. First, it allows you to open 
  710. FILES.BBS Windows and second, it also serves as a dropping point for files so 
  711. that you can quickly move files to another file area without having to open the 
  712. file area. 
  713.  
  714.  
  715. ΓòÉΓòÉΓòÉ 6.3.1. File Area Window Context Menu ΓòÉΓòÉΓòÉ
  716.  
  717. The File Area Window Context Menu is where you control the overall operations 
  718. of MaxFile/PM. A somewhat detailed explanation of each menu item follows. 
  719.  
  720.  
  721. ΓòÉΓòÉΓòÉ 6.3.1.1. Open... ΓòÉΓòÉΓòÉ
  722.  
  723. This menu item allows you to open the highlighted file area(s). 
  724.  
  725. The various ways of opening a file area are: 
  726.  
  727.     1. Highlighting the area you want to open and pressing enter. 
  728.  
  729.     2. Double-clicking mouse button 1 on a file area. 
  730.  
  731. If the file area is already open it will be brought into view, even if it is 
  732. minimized to the Minimized Window Viewer folder. 
  733.  
  734.  
  735. ΓòÉΓòÉΓòÉ 6.3.1.2. Area Sort ΓòÉΓòÉΓòÉ
  736.  
  737. Three options here: 
  738.  
  739.    Tag 
  740.    Description 
  741.    Files Dir 
  742.  
  743. These options sort the File Area Window listing by the appropriate field in 
  744. ascending order. 
  745.  
  746.  
  747. ΓòÉΓòÉΓòÉ 6.3.1.3. Check for Duplicates ΓòÉΓòÉΓòÉ
  748.  
  749. To check your file areas for duplicate files choose this menu item after 
  750. selecting the area(s) you want MaxFile/PM to check against all of your file 
  751. areas. Please note that the scan performed when checking for duplicates does 
  752. not involve the FILES.BBS files for the areas scanned, it looks at the contents 
  753. of the download directory for each area. So all duplicates will be found 
  754. regardless of whether there is a FILES.BBS entry for them or not. However, the 
  755. files searched for come directly from the FILES.BBS files of the areas selected 
  756. in the File Area window. So make sure if you have a FILES.BBS window open for 
  757. one of the areas you will be checking for duplicates from, that you have saved 
  758. any changes made in that window. 
  759.  
  760. The File Area window will be locked open until you close the DupeCheck Results 
  761. dialog box. This dialog will appear as soon as the file scanning is complete. 
  762. Inside this dialog you will see a listing of all the files found. To open the 
  763. file area associated with a file, simply double-click on its entry. If you 
  764. decide that you want to delete the file from this dialog, highlight the entry 
  765. and click the delete button. 
  766.  
  767.  
  768. ΓòÉΓòÉΓòÉ 6.3.1.4. Search... ΓòÉΓòÉΓòÉ
  769.  
  770. This function is very similar to the Dupe Checker option, with the exception 
  771. that instead of checking for duplicate files you can enter a string of text 
  772. that MaxFile/PM will search for in each of the FILES.BBS files for each of the 
  773. selected areas. 
  774.  
  775. First select the areas that you want to search, then bring up the context menu 
  776. and select 'Search...' A dialog box will come up asking you what to search for. 
  777. You may enter up to 80 characters. Click ok to begin the search. 
  778.  
  779. The search is not case nor position sensitive. Both the filename and 
  780. description are searched for the text, if the text appears in one of these two 
  781. places a 'hit' will occur. The dialog box that comes up after the search is 
  782. complete works exactly the same as the dialog box showing the results of the 
  783. Dupe Checker option. 
  784.  
  785.  
  786. ΓòÉΓòÉΓòÉ 6.3.1.5. All Files List ΓòÉΓòÉΓòÉ
  787.  
  788. Probably the most requested feature had to be the ability to generate a list of 
  789. available files from the FILES.BBS listings. MaxFile/PM will generate an all 
  790. files list for you. It's highly customizable and can be run automagically from 
  791. a batch file once configured correctly (NOTE: you must register MaxFile/PM to 
  792. stop the Product Information dialog from appearing.) 
  793.  
  794. To use the all files generator interactively, simply start MaxFile/PM and then 
  795. select the areas from the File Area window that you want included in the 
  796. listing. Then bring up the context menu and select "All Files List". MaxFile/PM 
  797. will then process each FILES.BBS and produce a listing under the filename 
  798. ALLFILES.LST in the directory that MaxFile/PM resides in. 
  799.  
  800. Each time you run the all files generator from the context menu, a file called 
  801. ALLFILES.CFG will be written that contains a list of the area tags for each of 
  802. the areas in the listing. Do NOT modify this file. The purpose behind this file 
  803. is to tell MaxFile/PM what areas to include when you run the all files 
  804. generator in batch mode. If you delete file areas that are in your 
  805. ALLFILES.CFG, you MUST run the all files generator from the context menu in 
  806. interactive mode at least once to keep the ALLFILES.CFG in sync with your file 
  807. areas. I'll put it this way... IF YOU WANT TO RUN IN BATCH MODE YOU MUST KEEP 
  808. allfiles.cfg IN SYNC WITH YOUR FILE AREAS. 
  809.  
  810. To customize the all files generator to suit your tastes, you can create three 
  811. text files which will be written to your file listing at the appropriate times. 
  812.  
  813. The names for the files are: 
  814.  
  815.    ALLFILES.HDR 
  816.    ALLFILES.FTR 
  817.    ALLFILES.CUS 
  818.  
  819. ALLFILES.HDR and ALLFILES.FTR are written verbatim to the file listing at the 
  820. beginning and ending of the listing, respectively. ALLFILES.CUS is a little 
  821. more complex. It allows you to insert text into the headers that are written to 
  822. the listing for each file area. The format of the file is: 
  823.  
  824.     <AreaTag> <Header text......>
  825.  
  826. <AreaTag> is the area tag of the file area header the text that follows it 
  827. should be inserted into. You may place as many lines as you need to for each 
  828. area as long as they all follow this format. <AreaTag> is checked against the 
  829. area tag for each area in such a manner that if the tag for the area begins 
  830. with the tag specified in this file the text will get inserted. An example 
  831. might be of some help here.. 
  832.  
  833. You have the following areas: 
  834.  
  835.    CICA001 
  836.    CICA002 
  837.    CICB001 
  838.    001 
  839.    002 
  840.  
  841. In your ALLFILES.CUS file you have: 
  842.  
  843.    CICA Files in this area are NOT freq'able. 
  844.    CIC These files are on my CD-ROM. 
  845.    00 These files are freq'able anytime but ZMH. 
  846.  
  847. CICA would match CICA001 and CICA002. CIC would match CICA001, CICA002 and 
  848. CICB002. 00 would match 001 and 002. Get the idea? Its rather simple once you 
  849. get used it. 
  850.  
  851. To run the all files generator in batch mode from the command line, specify the 
  852. -A switch on MaxFile/PM's command line. MaxFile/PM will do its thing and then 
  853. return to the command prompt when it is done. -a, -A, /a and /A are all 
  854. recognized as valid switches for this mode of operation. If you have not 
  855. registered MaxFile/PM please note that the Product Information dialog that 
  856. appears when you first start the program will severely hinder your ability to 
  857. use batch mode effectively. 
  858.  
  859.  
  860. ΓòÉΓòÉΓòÉ 6.3.1.6. Outdated Files... ΓòÉΓòÉΓòÉ
  861.  
  862. This option will allow you to either remove or move to a file area those files 
  863. that are older than a certain number of days. 
  864.  
  865. The process of taking care of your outdated files begins by selecting the areas 
  866. that you wish to scan from the File Area window. Now, bring up the context menu 
  867. and select 'OutDated Files...', you will be presented with a dialog box, this 
  868. is where you tell MaxFile/PM how to manage the old files. 
  869.  
  870. To remove files, select the Kill radio button. To move files to a selected file 
  871. area, select the Move radio button and then enter the Area Tag of the file area 
  872. you want the files to go into. The Area Tag you type in MUST exactly match one 
  873. of the area tags listed in the first column of the File Area window, upper and 
  874. lower case letters are important here. 
  875.  
  876. Now you need to tell MaxFile/PM the number of days old a file has to be before 
  877. it will be moved or deleted. Either type in the number of days or use the spin 
  878. button to adjust the number of days to your liking. To give you some indication 
  879. of the date range you will be working with, the date below the spin button will 
  880. tell you what the date on the oldest file can be. 
  881.  
  882. After entering the above, click OK and sit back and let MaxFile/PM do its 
  883. thing. If a file area you have selected is open, it will be skipped. Also, if 
  884. you are moving files, the file area that will receive the dated files will be 
  885. skipped. 
  886.  
  887.  
  888. ΓòÉΓòÉΓòÉ 6.3.1.7. REXX Macro... ΓòÉΓòÉΓòÉ
  889.  
  890. Don't like the way MaxFile/PM does something? Well, now YOU can change it! REXX 
  891. scripts are now supported. In addition to all the commands available from REXX, 
  892. there are 21 REXX extensions added by MaxFile/PM so that you can manipulate 
  893. your files from a REXX command script. 
  894.  
  895. A discussion of REXX is well beyond the scope of this document, instead what 
  896. you will read about here are the extensions that MaxFile/PM adds to REXX to 
  897. allow you to work with your files. The supplied TESTREXX.CMD file is a sample 
  898. that shows the syntax and usage of each of the added functions. PLEASE use this 
  899. file as a guide when you are constructing your macros. 
  900.  
  901. REXX commands and programs that communicate with the user via Standard input 
  902. and Standard output are fully supported by MaxFile/PM's REXX interface. When 
  903. the REXX interface first starts up a window entitled "MaxFile/PM REXX Output" 
  904. will appear on your desktop, this window is your means of communication with 
  905. REXX. 
  906.  
  907. The top line of the REXX output window contains a single line edit control that 
  908. can accept up to 80 characters. When you wish to actually send the typed text 
  909. to standard input, click on the Send button. Clicking on the Send button when 
  910. the control is empty sends a CR/LF pair to standard input. 
  911.  
  912. The remainder of the output window is reserved for the output coming from your 
  913. REXX commands and/or application programs. REXX's PULL and SAY commands are 
  914. fully supported. There are some limitations to what the output window can do 
  915. though. It doesn't support; reverse tabs, vertical tabs, backspace or cursor 
  916. movements. For applications that use this type of output or expect to be able 
  917. to write to the screen using other methods than standard output you are going 
  918. to need to use the START command or some other similar utility to run them in 
  919. another session. 
  920.  
  921. To stop a REXX script that is running, bring the Main File Area window to the 
  922. front and pull up the context menu, then select Stop REXX this will halt the 
  923. script after the current instruction is complete. 
  924.  
  925. Starting MaxFile/PM with the -r switch will cause MaxFile/PM to open its main 
  926. window, immediately run the REXX script specified and then exit. An example: 
  927.  
  928.                               MAXFMPM -rTESTREXX.CMD
  929.  
  930. Would start MaxFile/PM, run TESTREXX.CMD to completion and then exit. -r -R /r 
  931. and /R are all valid forms of the "REXX" switch. 
  932.  
  933. Listed later you will see the REXX extensions for use with MaxFile/PM, they 
  934. will be listed by name with a short explanation of each. All the functions 
  935. return 'ERROR' if something goes wrong. Those functions that aren't meant to 
  936. return some type of information return 'OK' for success. If a syntax error 
  937. occurs, processing of the script stops and the error cause can be found in the 
  938. file REXX.ERR in the directory MaxFile/PM resides in. 
  939.  
  940.                     *  PAY ATTENTION TO THE NEXT PARAGRAPH  *
  941.                    * IT WILL MAKE OR BREAK YOUR REXX SCRIPTS *
  942.  
  943. You can change directories throughout the lifetime of your script, but 
  944. MaxFile/PM needs to be able to find its files and it expects them to be in the 
  945. directory that your script gets called from. So if things start acting 
  946. strangely when you are testing a script, make sure the current directory is 
  947. your MaxFile/PM directory before you call one of the extensions listed here. 
  948. The standard REXX function DIRECTORY() will return the current directory for 
  949. you, use it to save the directory your script starts out in. Then just before 
  950. your script ends, use it to restore the current directory. 
  951.  
  952.  
  953. ΓòÉΓòÉΓòÉ 6.3.1.8. Stop REXX ΓòÉΓòÉΓòÉ
  954.  
  955. Stops the currently running REXX macro. The current instruction in the macro 
  956. will finish executing before the macro stops. 
  957.  
  958.  
  959. ΓòÉΓòÉΓòÉ 6.3.1.9. Settings... ΓòÉΓòÉΓòÉ
  960.  
  961. Brings up the Settings Notebook for MaxFile/PM. Please see Configuring 
  962. MaxFile/PM for more information. 
  963.  
  964.  
  965. ΓòÉΓòÉΓòÉ 6.3.1.10. Product Information ΓòÉΓòÉΓòÉ
  966.  
  967. Displays MaxFile/PM's Product Information Dialog. 
  968.  
  969.  
  970. ΓòÉΓòÉΓòÉ 6.3.2. MaxFile/PM REXX Extensions ΓòÉΓòÉΓòÉ
  971.  
  972. This section covers the extensions that MaxFile/PM provides for use in your 
  973. REXX scripts that are run from the File Area Window context menu. 
  974.  
  975.  
  976. ΓòÉΓòÉΓòÉ 6.3.2.1. MPM_GetVersion() ΓòÉΓòÉΓòÉ
  977.  
  978. Returns MaxFile/PM's revision or version number. 
  979.  
  980.  
  981. ΓòÉΓòÉΓòÉ 6.3.2.2. MPM_ClearWindow() ΓòÉΓòÉΓòÉ
  982.  
  983. Clears the REXX output window. 
  984.  
  985.  
  986. ΓòÉΓòÉΓòÉ 6.3.2.3. MPM_MsgBox(message, title) ΓòÉΓòÉΓòÉ
  987.  
  988. Displays a simple message box using 'message' as the text displayed in the 
  989. message box and 'title' as the title for the message box. 
  990.  
  991.  
  992. ΓòÉΓòÉΓòÉ 6.3.2.4. MPM_QueryArea([areatag]) ΓòÉΓòÉΓòÉ
  993.  
  994. Works in two different ways. Called with no arguments it returns the area tag 
  995. of the first file area listed in the Main File Area window listing. When called 
  996. with a single argument containing the area tag of an existing file area, it 
  997. will return the area tag of the NEXT file area in the list. In either case, if 
  998. an area can't be found it returns 'ERROR'. 
  999.  
  1000.  
  1001. ΓòÉΓòÉΓòÉ 6.3.2.5. MPM_QueryAreaList('stemvar') ΓòÉΓòÉΓòÉ
  1002.  
  1003. Creates a compound stem variable containing the area tag, description, download 
  1004. path and the full path/filename of the FILES.BBS for each area. 
  1005.  
  1006. The stem variable name is passed to the function as a string. stemvar.0 
  1007. contains the total number of areas that information has been returned for. 
  1008.  
  1009. An example of how to use this function follows: 
  1010.  
  1011.     /* MPM_QueryAreaList() example */
  1012.     rc = MPM_QueryAreaList('arealist')
  1013.  
  1014.     Say arealist.0' items in Area List.'
  1015.     Say arealist.1.area' is the first area.'
  1016.     Say arealist.1.desc' is the first area description.'
  1017.     Say arealist.1.path' is the first area download path.'
  1018.     Say arealist.1.fbbs' is the first area FILES.BBS location.'
  1019.  
  1020.  
  1021. ΓòÉΓòÉΓòÉ 6.3.2.6. MPM_QueryAreaInfo(areatag, '0' | '1' | '2') ΓòÉΓòÉΓòÉ
  1022.  
  1023. Queries and returns the specified information for 'areatag.' The level info is 
  1024. as follows: 
  1025.  
  1026.  
  1027.  0    Area description
  1028.  
  1029.  1    Download Path
  1030.  
  1031.  2    FILES.BBS Location
  1032.  
  1033.  
  1034. ΓòÉΓòÉΓòÉ 6.3.2.7. MPM_DeselectArea(areatag) ΓòÉΓòÉΓòÉ
  1035.  
  1036. Detags a file area in the Main File Area window. 
  1037.  
  1038.  
  1039. ΓòÉΓòÉΓòÉ 6.3.2.8. MPM_SelectArea(areatag) ΓòÉΓòÉΓòÉ
  1040.  
  1041. Tags a file area in the Main File Area Window. 
  1042.  
  1043.  
  1044. ΓòÉΓòÉΓòÉ 6.3.2.9. MPM_OpenArea(areatag) ΓòÉΓòÉΓòÉ
  1045.  
  1046. Opens the FILES.BBS Window associated with 'areatag'. 
  1047.  
  1048.  
  1049. ΓòÉΓòÉΓòÉ 6.3.2.10. MPM_CloseArea(areatag) ΓòÉΓòÉΓòÉ
  1050.  
  1051. Closes the FILES.BBS window associated with 'areatag.' 
  1052.  
  1053.  
  1054. ΓòÉΓòÉΓòÉ 6.3.2.11. MPM_IsAreaOpen(areatag) ΓòÉΓòÉΓòÉ
  1055.  
  1056. Returns "1" if the FILES.BBS window associated with 'areatag' is open, "0" 
  1057. otherwise. 
  1058.  
  1059.  
  1060. ΓòÉΓòÉΓòÉ 6.3.2.12. MPM_SetFDUFlag(areatag) ΓòÉΓòÉΓòÉ
  1061.  
  1062. Sets the File Database Utility flag for the FILES.BBS that is associated with 
  1063. 'areatag.' Use this to tell MaxFile/PM that the File Database Utility needs to 
  1064. be run to update your file database after making changes that MaxFile/PM 
  1065. doesn't know about. 
  1066.  
  1067.  
  1068. ΓòÉΓòÉΓòÉ 6.3.2.13. MPM_QueryFile(areatag[, filename]) ΓòÉΓòÉΓòÉ
  1069.  
  1070. Returns the base filename of a file from a FILES.BBS window. When called with 
  1071. just the area tag of an open window it returns the first file in the window. 
  1072. When called with both the area tag and an existing filename it will return the 
  1073. NEXT filename in the window. If something goes wrong it returns ERROR. 
  1074.  
  1075.  
  1076. ΓòÉΓòÉΓòÉ 6.3.2.14. MPM_QueryFileList(areatag, 'stemvar') ΓòÉΓòÉΓòÉ
  1077.  
  1078. Creates a compound stem variable containing a list of all the files in the 
  1079. FILES.BBS associated with 'areatag'. The stem variable name is passed as a 
  1080. string to the function. stemvar.0 contains how many items are in the list. 
  1081.  
  1082. An example follows: 
  1083.  
  1084.     /* MPM_QueryFileList() example */
  1085.     Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  1086.     mpmarea = 'TEST'
  1087.  
  1088.     /* Open up the file area */
  1089.     retval = MPM_OpenArea(mpmarea)
  1090.     /* Give the open call a chance to work */
  1091.     Call SysSleep 3
  1092.  
  1093.     If MPM_IsAreaOpen(mpmarea) = '0' then Exit
  1094.  
  1095.     rc = MPM_QueryFileList(mpmarea, 'files')
  1096.  
  1097.     rc = MPM_CloseArea(mpmarea)
  1098.  
  1099.     Say 'There are 'files.0' files in the list.'
  1100.     Say
  1101.     Say files.1.file' is the first file.'
  1102.     Say files.1.path' is the path of the first file.'
  1103.     Say files.1.desc' is the description of the first file.'
  1104.  
  1105.  
  1106. ΓòÉΓòÉΓòÉ 6.3.2.15. MPM_QueryFileInfo(areatag, filename, '0' | '1' | '2' | '3') ΓòÉΓòÉΓòÉ
  1107.  
  1108. Queries and returns the specified information about 'filename.' The level 
  1109. information is as follows: 
  1110.  
  1111.  
  1112.  0    File Path
  1113.  
  1114.  1    File Date in DD MMM YYYY format
  1115.  
  1116.  2    File Size
  1117.  
  1118.  3    File Description
  1119.  
  1120.  
  1121. ΓòÉΓòÉΓòÉ 6.3.2.16. MPM_SelectFile(areatag, filename) ΓòÉΓòÉΓòÉ
  1122.  
  1123. Select 'filename' in the area identified by 'areatag'. 
  1124.  
  1125.  
  1126. ΓòÉΓòÉΓòÉ 6.3.2.17. MPM_DeselectFile(areatag, filename) ΓòÉΓòÉΓòÉ
  1127.  
  1128. Deselect 'filename' in the area identified by 'areatag'. 
  1129.  
  1130.  
  1131. ΓòÉΓòÉΓòÉ 6.3.2.18. MPM_SetFileInfo(areatag, filename, '0' | '1' | '2') ΓòÉΓòÉΓòÉ
  1132.  
  1133. Set the displayed information for a file in a FILES.BBS window. The level 
  1134. information is as follows: 
  1135.  
  1136.  
  1137.  0    Set File Date
  1138.  
  1139.  1    Set File Size
  1140.  
  1141.  2    Set File Description
  1142.  
  1143. Please note that options 0 and 1 are only for display purposes, if you want to 
  1144. set the file's date ("touch" it) you need to perform this yourself, MaxFile/PM 
  1145. does not do this for you, the same goes for the file's size. This REXX 
  1146. extension is merely to update the display in the FILES.BBS window. Option 2, 
  1147. for setting descriptions, does actually alter the description that will get 
  1148. saved for the file though. 
  1149.  
  1150. Dates should be in the FTSC format DD MMM YYYY, I.E, 01 Dec 1993. Sizes should 
  1151. be unformatted with no thousands separators. 
  1152.  
  1153.  
  1154. ΓòÉΓòÉΓòÉ 6.3.2.19. MPM_RemoveFile(areatag, filename) ΓòÉΓòÉΓòÉ
  1155.  
  1156. Removes the file 'filename' from the FILES.BBS window associated with 
  1157. 'areatag'. 
  1158.  
  1159.  
  1160. ΓòÉΓòÉΓòÉ 6.3.2.20. MPM_AddFile(areatag, filename, description) ΓòÉΓòÉΓòÉ
  1161.  
  1162. Adds 'filename' with description to the FILES.BBS window associated with 
  1163. 'areatag'. 'filename' MUST be a FULL file specification in the form of 
  1164. D:\PATH\FILENAME.EXE! The function returns 'ERROR' if something goes wrong. 
  1165.  
  1166.  
  1167. ΓòÉΓòÉΓòÉ 6.3.2.21. MPM_AnnounceFiles('stemvar') ΓòÉΓòÉΓòÉ
  1168.  
  1169. Creates a file announcement message and writes it to a Squish or *.MSG message 
  1170. base. The message is built from the information stored in the compound stem 
  1171. variable 'stemvar'. 
  1172.  
  1173. Please see TANN.CMD (included in the distribution archive) for an example of 
  1174. how to use this extension. 
  1175.  
  1176. The elements of the message that need to be placed in 'stemvar' are as follows: 
  1177.  
  1178.  
  1179.  stemvar.msgpath    is the root path of the message area to place the
  1180.                     message in.
  1181.  
  1182.  stemvar.msgproc    is the executable name and switches needed to run
  1183.                     your mail tosser/packer, this one is optional, if
  1184.                     it isn't defined it is ignored.
  1185.  
  1186.  stemvar.msgtype    this defines the type of message base and must be
  1187.                     one of: SQUISH, MSG or MSGECHO.
  1188.  
  1189.  stemvar.msgflag    is the message flag you want to use for this
  1190.                     message, it must be one of: HOLD, NORMAL or CRASH.
  1191.  
  1192.  stemvar.to         is the name to address the message to, if it isn't
  1193.                     defined it defaults to 'All'.
  1194.  
  1195.  stemvar.toaddr     this the Fidonet style address of the recipient of
  1196.                     the message. It must be in the format
  1197.                     Zone:Net/Node.Point, I.E, 1:201/60.0, if not
  1198.                     defined it defaults to stemvar.fromaddr.
  1199.  
  1200.  stemvar.from       is the name the message is from, this one is
  1201.                     required.
  1202.  
  1203.  stemvar.fromaddr   is the address of who the message is from, in
  1204.                     other words, the originating Fidonet address. This
  1205.                     one is also required.
  1206.  
  1207.  stemvar.subject    this gets put in the subject field of the message.
  1208.                     If not defined it defaults to 'File Announcement'.
  1209.  
  1210.  stemvar.header     is the header of the message, it gets placed just
  1211.                     before the file list in the message. This one is
  1212.                     optional. 1024 character limit.
  1213.  
  1214.  stemvar.footer     this is similar to the header, except it comes
  1215.                     after the file list in the message. It is also
  1216.                     optional. 1024 character limit.
  1217.  
  1218.  stemvar.origin     this is the text that will get put in the origin
  1219.                     line of the message. The '_*_Origin:_' and from
  1220.                     fidonet address are taken care for you. All you
  1221.                     need to enter here is what text you want added in
  1222.                     between the two. This is optional, if it is not
  1223.                     defined no origin line is generated.
  1224.  
  1225.  stemvar.0          contains the number files being announced.
  1226.  
  1227.  stemvar.x.file     this is the base filename of a file to announce.
  1228.  
  1229.  stemvar.x.path     is the drive and path to the above base filename.
  1230.                     Do NOT include the filename here.
  1231.  
  1232.  stemvar.x.desc     this is the description you want to use for this
  1233.                     file in the message. 1024 character limit.
  1234.  
  1235. 'x' in the above three is a place holder for each of the files that you want 
  1236. announced, up to stemvar.0 files. 
  1237.  
  1238.  
  1239. ΓòÉΓòÉΓòÉ 6.3.2.22. MPM_Crc32('filename') ΓòÉΓòÉΓòÉ
  1240.  
  1241. Examines 'filename' and returns a CRC32 value calculated according to FIPS PUB 
  1242. 71 and FED-STD-1003. This should prove useful for rolling your own TIC 
  1243. processor. 
  1244.  
  1245.  
  1246. ΓòÉΓòÉΓòÉ 6.4. FILES.BBS Window ΓòÉΓòÉΓòÉ
  1247.  
  1248. FILES.BBS windows are the heart and soul of MaxFile/PM, these windows are where 
  1249. you will be spending most of your time. A FILES.BBS window is very similar to 
  1250. the File Area window in appearance. What you will see when you open one of 
  1251. these windows is the contents of the FILES.BBS that is associated with the file 
  1252. area this window belongs to. 
  1253.  
  1254.  
  1255. ΓòÉΓòÉΓòÉ 6.4.1. The Button Bar ΓòÉΓòÉΓòÉ
  1256.  
  1257. If you have the Button Bar option in the Settings Notebook/Main/Page 2 turned 
  1258. on then just below the title bar of each FILES.BBS window there will be a 
  1259. button bar that contains buttons for the most commonly used items on the 
  1260. context menu. 
  1261.  
  1262. Should you forget what a particular button does you can find out by pressing 
  1263. mouse button 1 down while the mouse pointer is over the button and holding it 
  1264. down. A short description will appear in the status bar at the bottom of the 
  1265. FILES.BBS window. If you don't want to perform the operation at that time, drag 
  1266. the mouse pointer down into the list of files and release mouse button 1. 
  1267.  
  1268. Moving from the left side of the window towards the right, here's what they do: 
  1269.  
  1270.  
  1271.  Sort                 Uses the *last* sort type selected from the
  1272.                       context menu in a FILES.BBS Window. If no sort has
  1273.                       been selected it defaults to Name/Ascending.
  1274.  
  1275.  Edit Description     This is the same as ^E and Edit Description on the
  1276.                       context menu. Allows you to edit the description
  1277.                       for the highlighted file, if more than one file is
  1278.                       highlighted the file with the dotted cursor focus
  1279.                       is the one that will have the edit box opened for
  1280.                       it.
  1281.  
  1282.  Get FILE_ID.DIZ      Attempts to extract the FILE_ID.DIZ from the
  1283.                       selected files.
  1284.  
  1285.  Touch Files          Touches all the selected files.
  1286.  
  1287.  Virus Scan           Runs the defined Virus Scanner on all highlighted
  1288.                       files.
  1289.  
  1290.  Test Archive         Runs the archiver tests on the highlighted
  1291.                       archives.
  1292.  
  1293.  Remove Items         Just like Remove Items... from the context menu.
  1294.  
  1295.  Format               Same as Description->Format... from the context
  1296.  Description...       menu.
  1297.  
  1298.  
  1299. ΓòÉΓòÉΓòÉ 6.4.2. Hotkeys ΓòÉΓòÉΓòÉ
  1300.  
  1301. The following accelerator keys may be used when you are working in FILES.BBS 
  1302. window: 
  1303.  
  1304.     ^ = CTRL, ! = SHIFT
  1305.  
  1306.     Sort Ascending
  1307.         Name        ^1
  1308.         Date        ^2
  1309.         Size        ^3
  1310.         Description ^4
  1311.     Sort Descending
  1312.         Name        ^5
  1313.         Date        ^6
  1314.         Size        ^7
  1315.         Description ^8
  1316.     Description
  1317.         Edit        ^E
  1318.         Format      ^F
  1319.         Get DIZ     ^G
  1320.         Set DIZ     ^S
  1321.     Files
  1322.         Adopt       ^A
  1323.         Announce    ^N
  1324.         Touch       ^O
  1325.         View        ENTER
  1326.         Virus Scan  ^C
  1327.     Archives
  1328.         Test        ^T
  1329.         Extract to  ^X
  1330.         ReArchive
  1331.             to ZIP  !F2
  1332.             to ARJ  !F3
  1333.             to LZH  !F4
  1334.             to ARC  !F5
  1335.     Remove Items    ^D
  1336.  
  1337.  
  1338. ΓòÉΓòÉΓòÉ 6.4.3. Renaming Files ΓòÉΓòÉΓòÉ
  1339.  
  1340. To rename a file, press and hold the ALT key and click mouse button 1 on the 
  1341. file that you want to rename. Then enter the new filename and click button 1 
  1342. anywhere outside the edit box or press the keypad Enter key. Pressing ESC will 
  1343. discard any changes you have made to the filename. 
  1344.  
  1345.  
  1346. ΓòÉΓòÉΓòÉ 6.4.4. Editing File Descriptions ΓòÉΓòÉΓòÉ
  1347.  
  1348. Editing descriptions works in the much the same manner as renaming files, 
  1349. ALT+click mouse button 1 on the description you want to edit. To save the 
  1350. description, click outside the edit box or press the keypad Enter key. Pressing 
  1351. ESC will discard any changes made to the description or comment. 
  1352.  
  1353. The standard CUA conventions for cutting and pasting text work while the 
  1354. editing window is open for you to edit descriptions. 
  1355.  
  1356. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1357. ΓöéCtrl+INS       ΓöéCopy to the Clipboard                   Γöé
  1358. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1359. ΓöéShift+Del      ΓöéCut to the Clipboard                    Γöé
  1360. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1361. ΓöéDel            ΓöéCut (to the black hole of bits)         Γöé
  1362. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1363. ΓöéShift+INS      ΓöéPaste from the Clipboard                Γöé
  1364. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1365.  
  1366. These aren't well documented, but they are standard items that you can expect 
  1367. *most* applications to use when working with text, including MaxFile/PM. 
  1368.  
  1369.  
  1370. ΓòÉΓòÉΓòÉ 6.4.5. FILES.BBS Window Context Menu ΓòÉΓòÉΓòÉ
  1371.  
  1372. This sections covers the context menu for each FILES.BBS Window. 
  1373.  
  1374.  
  1375. ΓòÉΓòÉΓòÉ 6.4.5.1. Save FILES.BBS ΓòÉΓòÉΓòÉ
  1376.  
  1377. Performs an unconditional save of the FILES.BBS for the current FILES.BBS 
  1378. Window. At the same time it also sets the flag for this area to tell MaxFile/PM 
  1379. that the File Database Utility (if you have one configured) needs to be run on 
  1380. it. 
  1381.  
  1382.  
  1383. ΓòÉΓòÉΓòÉ 6.4.5.2. Sort Ascending ΓòÉΓòÉΓòÉ
  1384.  
  1385. Four choices: 
  1386.  
  1387.    Name 
  1388.    Date 
  1389.    Size 
  1390.    Description 
  1391.  
  1392. Sorts the FILES.BBS entries for the current FILES.BBS Window in ascending 
  1393. order. 
  1394.  
  1395. Please note the following; If you want the entire FILES.BBS sorted make sure 
  1396. that none of the items in the window are selected. If any items are selected 
  1397. ONLY those items get sorted. Deselect All or CTRL+\ will remove the selection 
  1398. emphasis on all items in the window. This applies to both ascending and 
  1399. descending sorts. 
  1400.  
  1401.  
  1402. ΓòÉΓòÉΓòÉ 6.4.5.3. Sort Descending ΓòÉΓòÉΓòÉ
  1403.  
  1404. Four choices: 
  1405.  
  1406.    Name 
  1407.    Date 
  1408.    Size 
  1409.    Description 
  1410.  
  1411. Sorts the FILES.BBS entries for the current FILES.BBS Window in descending 
  1412. order. 
  1413.  
  1414. Please note the following; If you want the entire FILES.BBS sorted make sure 
  1415. that none of the items in the window are selected. If any items are selected 
  1416. ONLY those items get sorted. Deselect All or CTRL+\ will remove the selection 
  1417. emphasis on all items in the window. This applies to both ascending and 
  1418. descending sorts. 
  1419.  
  1420.  
  1421. ΓòÉΓòÉΓòÉ 6.4.5.4. Descriptions ΓòÉΓòÉΓòÉ
  1422.  
  1423. This section covers the operations that can be performed on file descriptions. 
  1424.  
  1425.  
  1426. ΓòÉΓòÉΓòÉ 6.4.5.4.1. Copy ΓòÉΓòÉΓòÉ
  1427.  
  1428. This selection takes the first description from a group of selected items and 
  1429. copies it to the rest of the files in the group. The copied description will 
  1430. have '(xx of xx)' appended to the end of it. This is convenient to use with a 
  1431. group of files that are all part of one program or file collection. 
  1432.  
  1433.  
  1434. ΓòÉΓòÉΓòÉ 6.4.5.4.2. Edit ΓòÉΓòÉΓòÉ
  1435.  
  1436. Many of you asked for this one. Edit Description allows you to edit the 
  1437. description of a selected item by first selecting it, then choosing this option 
  1438. from the context menu. It works the same way as ALT+clicking mouse button 1 on 
  1439. an item's description. 
  1440.  
  1441.  
  1442. ΓòÉΓòÉΓòÉ 6.4.5.4.3. Format... ΓòÉΓòÉΓòÉ
  1443.  
  1444. This option is only usable when you have an Extended Description Marker (ED 
  1445. Marker) defined in the Settings Notebook. In a nutshell what it does is take a 
  1446. file description and break it up into smaller parts and insert the defined ED 
  1447. Marker at the beginning of the excess lines so that your BBS package will 
  1448. understand the excess lines are part of the description for a file. 
  1449.  
  1450. After selecting this option from the context menu a dialog box will be 
  1451. presented asking you for a left margin and a line length. The left margin is 
  1452. where you want the ED Marker placed on the line and the line length is how many 
  1453. characters past the ED Marker the description is allowed to go on each line. 
  1454.  
  1455.  
  1456. ΓòÉΓòÉΓòÉ 6.4.5.4.4. Get FILE_ID.DIZ ΓòÉΓòÉΓòÉ
  1457.  
  1458. This option goes through the selected items in the window and attempts to 
  1459. extract the FILE_ID.DIZ from them. Comments and files that aren't archives are 
  1460. skipped over by this function. If a FILE_ID.DIZ is present in the archives 
  1461. selected, it will be read from it and placed in the description field. You will 
  1462. need to edit this text to suit your needs. 
  1463.  
  1464.  
  1465. ΓòÉΓòÉΓòÉ 6.4.5.4.5. Set FILE_ID.DIZ ΓòÉΓòÉΓòÉ
  1466.  
  1467. Here you can insert the file description for selected archives into the 
  1468. archives as a FILE_ID.DIZ. You will need to edit the description to conform to 
  1469. the 45/10 standard. 
  1470.  
  1471.  
  1472. ΓòÉΓòÉΓòÉ 6.4.5.5. Files ΓòÉΓòÉΓòÉ
  1473.  
  1474. This sections covers the operations that can be performed on files. 
  1475.  
  1476.  
  1477. ΓòÉΓòÉΓòÉ 6.4.5.5.1. Adopt ΓòÉΓòÉΓòÉ
  1478.  
  1479. Adopt Files allows you to add any orphan files in a particular file area to the 
  1480. FILES.BBS for that area. Adopting is performed in a separate thread so that you 
  1481. may continue to work in the window for the file area while the adopt is going 
  1482. on. The window will be locked open while the Adopt is being performed. 
  1483.  
  1484.  
  1485. ΓòÉΓòÉΓòÉ 6.4.5.5.2. Announce... ΓòÉΓòÉΓòÉ
  1486.  
  1487. This option will allow you to write a customized message announcing selected 
  1488. files directly to any Squish, *.MSG or *.MSG ECHO message base. You may also 
  1489. specify a mail processor so that you can scan for the message to send it out of 
  1490. your system. 
  1491.  
  1492. The whole process gets started by selecting the files you wish to announce from 
  1493. a FILES.BBS window. Next you bring up the context menu and select 'Announce 
  1494. Files...' You will be presented with a configuration dialog you must fill out 
  1495. to tell MaxFile/PM the particulars about the message you want to send. As it 
  1496. stands right now, you have to fill out the dialog for each different window. 
  1497. The configuration for each window will be saved separately and will be used 
  1498. each subsequent time you announce files from each particular window. 
  1499.  
  1500. There are a few things MaxFile/PM needs to know to be able to send the message 
  1501. correctly and they are as follows: 
  1502.  
  1503.  
  1504.  Message Base Path      The full path and base filename of the message
  1505.                         area put the message in. For *.MSG areas this will
  1506.                         be the full path to the directory that contains
  1507.                         the *.MSG files. For Squish areas this will be the
  1508.                         path and base filename of the Squish files related
  1509.                         to the message area. This is a required entry.
  1510.  
  1511.  Mail Processor         This is an optional entry to allow you to scan for
  1512.                         the message that was just written by a mail
  1513.                         tosser/scanner. Please see the documentation for
  1514.                         your tosser/scanner for more information.
  1515.  
  1516.  Message Type           This is the message base type, *.MSG and Squish
  1517.                         are fairly self-explanatory. *.MSG Echo, refers to
  1518.                         a Fidonet style *.MSG echo mail area that stores
  1519.                         the high-water mark in 1.MSG.
  1520.  
  1521.  Message Flags          These are the attribute flags for the message you
  1522.                         will be creating. They are mutually exclusive. I
  1523.                         will be adding Direct to the available flags when
  1524.                         I get the time to research the flags more.
  1525.  
  1526.  To:                    This is the name of the recipient of the message.
  1527.                         If you leave it blank, MaxFile/PM will
  1528.                         automatically default to 'All.'
  1529.  
  1530.  To Addr:               This is the address of the recipient of the
  1531.                         message. If left blank, the From Address will be
  1532.                         used. (Please see the From Address discussion for
  1533.                         more information on entering Fidonet addresses.)
  1534.  
  1535.  From:                  This is a required entry. This is the name of the
  1536.                         sender of the message.
  1537.  
  1538.  From Addr:             This is a required entry. This is the address of
  1539.                         the sender of the message. Most likely this will
  1540.                         be your fidonet address if you have one. If not it
  1541.                         doesn't matter what you enter here, as it won't
  1542.                         get used by your message bases.
  1543.  
  1544.                         The format for entering Fidonet addresses into
  1545.                         MaxFile/PM is: zone:net/node.point All four
  1546.                         elements are required. To use my address as an
  1547.                         example, the field would have 1:201/60.0 entered
  1548.                         into it.
  1549.  
  1550.  Header                 This is an optional entry that you can use to
  1551.                         place a customer banner at the top of the message
  1552.                         just before the files that are being announced in
  1553.                         the message. It is pretty much free-form, but you
  1554.                         will be much better off if you leave the
  1555.                         formatting up to MaxFile/PM. You may enter up to
  1556.                         1024 characters in this field.
  1557.  
  1558.  Footer                 This entry is basically the same as the Header
  1559.                         field, except it comes after the announced files.
  1560.                         You may enter up to 1024 characters in this field.
  1561.  
  1562. The 'Subject' line of the message is 'File Announcement' it is currently hard 
  1563. coded. If I get enough requests, I will add it as an option but as you can see, 
  1564. the message dialog is quite full as it is. The Tear line will always read '--- 
  1565. MaxFile/PM x.xx'. 
  1566.  
  1567.  
  1568. ΓòÉΓòÉΓòÉ 6.4.5.5.3. Touch ΓòÉΓòÉΓòÉ
  1569.  
  1570. "Touching" is the process of updating the Time and Date stamps of files to the 
  1571. current time and date. This option allows you to do that for the selected files 
  1572. in the current window. 
  1573.  
  1574.  
  1575. ΓòÉΓòÉΓòÉ 6.4.5.5.4. View ΓòÉΓòÉΓòÉ
  1576.  
  1577. The View option works in conjunction with the external program options. For 
  1578. archives it will fire up the proper archiver to create a list of files 
  1579. contained in the archive and display a dialog containing that list. For 
  1580. pictures and text files the appropriate viewer will be started. View is also 
  1581. the action that is associated with double-clicking mouse button 1 on an entry 
  1582. in the window. 
  1583.  
  1584.  
  1585. ΓòÉΓòÉΓòÉ 6.4.5.5.5. Virus Scanner ΓòÉΓòÉΓòÉ
  1586.  
  1587. This option runs the virus scanner you have set up on each file selected in the 
  1588. current FILES.BBS window. The window that the virus scanner is run in is not 
  1589. closed when the scan is complete so that you may view the results. 
  1590.  
  1591. Nothing is extracted from the archives. The files are passed to the 
  1592. 'Other->Virus Scanner' entry from the Settings Notebook one at a time until all 
  1593. the selected files have been scanned. At this writing it is up to you to 
  1594. perform any additional processing. 
  1595.  
  1596.  
  1597. ΓòÉΓòÉΓòÉ 6.4.5.6. Archives ΓòÉΓòÉΓòÉ
  1598.  
  1599. This section covers the operations that can be performed in archives. 
  1600.  
  1601.  
  1602. ΓòÉΓòÉΓòÉ 6.4.5.6.1. Test Archive ΓòÉΓòÉΓòÉ
  1603.  
  1604. This option only works with archives. It simply invokes the appropriate 
  1605. archiver for each selected item in the window. The output from the archiver 
  1606. will be displayed in a dialog box after the testing is completed for each 
  1607. archive. 
  1608.  
  1609.  
  1610. ΓòÉΓòÉΓòÉ 6.4.5.6.2. Extract To... ΓòÉΓòÉΓòÉ
  1611.  
  1612. Here you can extract a selected archive to a directory that you specify. Note 
  1613. that the directory you specify must exist. 
  1614.  
  1615. You will be asked for a new directory to extract to for each file that is 
  1616. selected. After you have used this option at least once, the directory will be 
  1617. remembered the next time the dialog box comes up asking you for a directory. 
  1618. You can just press ENTER to accept it. Cancel ONLY cancels the operation for 
  1619. the CURRENT file. 
  1620.  
  1621.  
  1622. ΓòÉΓòÉΓòÉ 6.4.5.6.3. ReArchive ΓòÉΓòÉΓòÉ
  1623.  
  1624. Eight choices here: 
  1625.  
  1626.    to ZIP 
  1627.    to ARJ 
  1628.    to LZH 
  1629.    to ARC 
  1630.    to HA 
  1631.    to RAR 
  1632.    to UC2 
  1633.    to ZOO 
  1634.  
  1635. Each of these options takes an existing archive or group of archives and 
  1636. converts them to the appropriate archive type. 
  1637.  
  1638. If the ADD entry for an archive is not defined its entry on this sub-menu will 
  1639. be disabled. 
  1640.  
  1641.  
  1642. ΓòÉΓòÉΓòÉ 6.4.5.7. Insert ΓòÉΓòÉΓòÉ
  1643.  
  1644. This section covers the options for inserting comments and files into a 
  1645. FILES.BBS Window. 
  1646.  
  1647.  
  1648. ΓòÉΓòÉΓòÉ 6.4.5.7.1. Comment ΓòÉΓòÉΓòÉ
  1649.  
  1650. To Insert a comment into the current FILES.BBS window, first select the item in 
  1651. the window that you want the comment to go in FRONT of. Then bring up the 
  1652. context menu and select Insert->Comment. A blank comment will then be inserted 
  1653. in the FILES.BBS window. 
  1654.  
  1655.  
  1656. ΓòÉΓòÉΓòÉ 6.4.5.7.2. File... ΓòÉΓòÉΓòÉ
  1657.  
  1658. Insert/File works much the same way as Insert/Comment, first select the item in 
  1659. the window that you want the file to go in FRONT of, then select Insert->File 
  1660. from the context menu. A file dialog will be displayed so that you can find the 
  1661. file you want to insert. Once you have found the file, select the Insert button 
  1662. in the dialog box. The file will then be inserted into the current window. 
  1663. Selecting the Cancel button inside the file dialog box aborts the insert 
  1664. operation. 
  1665.  
  1666. The file will be inserted into the FILES.BBS with a FULL PATH SPECIFICATION. It 
  1667. does NOT get copied or moved into the download directory. This allows you to 
  1668. point to a single file from multiple FILES.BBS files. 
  1669.  
  1670.  
  1671. ΓòÉΓòÉΓòÉ 6.4.5.8. Remove Items ΓòÉΓòÉΓòÉ
  1672.  
  1673. This item removes or deletes items from the FILES.BBS window. When you select 
  1674. it from the context menu, a dialog box will appear allowing you two options. 
  1675. 'Entries' just removes the entry from the FILES.BBS window, 'Entries and Files' 
  1676. causes the entries to be removed and the associated with the entries to be 
  1677. deleted. Click Ok to remove the items, or Cancel to abort the operation. 
  1678.  
  1679.  
  1680. ΓòÉΓòÉΓòÉ 6.4.5.9. Select All ΓòÉΓòÉΓòÉ
  1681.  
  1682. Selects all items in the current FILES.BBS Window. 
  1683.  
  1684.  
  1685. ΓòÉΓòÉΓòÉ 6.4.5.10. Deselect All ΓòÉΓòÉΓòÉ
  1686.  
  1687. Deselects all items in the current FILES.BBS Window. 
  1688.  
  1689.  
  1690. ΓòÉΓòÉΓòÉ 6.4.5.11. Display Date ΓòÉΓòÉΓòÉ
  1691.  
  1692. Toggles the display of the File Date column in the current FILES.BBS Window. 
  1693. This setting is temporary, FILES.BBS Windows will always open according to the 
  1694. settings defined in the Settings Notebook. 
  1695.  
  1696.  
  1697. ΓòÉΓòÉΓòÉ 6.4.5.12. Display Size ΓòÉΓòÉΓòÉ
  1698.  
  1699. Toggles the display of the File Size column in the current FILES.BBS Window. 
  1700. This setting is temporary, FILES.BBS Windows will always open according to the 
  1701. settings defined in the Settings Notebook. 
  1702.  
  1703.  
  1704. ΓòÉΓòÉΓòÉ 6.4.5.13. Area Statistics ΓòÉΓòÉΓòÉ
  1705.  
  1706. This option displays an information message box containing how many files are 
  1707. in the current area, how much space they take up and how much free space 
  1708. remains on the volume. 
  1709.  
  1710.  
  1711. ΓòÉΓòÉΓòÉ 7. Example REXX Command Scripts ΓòÉΓòÉΓòÉ
  1712.  
  1713. This section contains some example REXX scripts that you can use to get an idea 
  1714. of how to use REXX with MaxFile/PM. 
  1715.  
  1716. Keep in my that these were written with the system they were tested on in mind, 
  1717. so you may have to change paths or areas to suit your configuration. 
  1718.  
  1719.  
  1720. ΓòÉΓòÉΓòÉ 7.1. ANNOUNCE.CMD ΓòÉΓòÉΓòÉ
  1721.  
  1722. /* ANNOUNCE.CMD - REXX program to generate a File Announcement
  1723. with MPBeta for new files. Version 1.21
  1724.  
  1725. ver 1.1:  Found an error and in the process of cleaning it up, sped up the
  1726. program's execution! Moved the file_desc stuff inside the loop.
  1727.  
  1728. ver 1.2:  Added format description routines, most borrowed from Craig
  1729. Morrison (Thanks!)
  1730.  
  1731. ver 1.21: Added two lines to add back the space between upload counters:
  1732. from ( 0) back to (  0). It was stripped out in formatting.
  1733.  
  1734.   - 13 July, 1994 by Elliott Goodman, 1:102/1319 - 805-264-0200
  1735. */
  1736.  
  1737. /* check whether RxFuncs are loaded. If not, load them. */
  1738.  
  1739. if RxFuncQuery('SysLoadFuncs') then
  1740. do
  1741.         call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  1742.         call SysLoadFuncs
  1743. end
  1744.  
  1745. /* Just to let the user know what's going on.... */
  1746.  
  1747. say 'Searching thru file areas for new files to announce.'
  1748. say 'Please wait....';
  1749. say ' ';
  1750.  
  1751.  
  1752. /* create a tracking file */
  1753. report = 'd:\lora\file\mpbeta\announce.txt'
  1754.  
  1755. /* delete old tracking file, if present */
  1756. call SysFileDelete(report)
  1757.  
  1758. m_txt = 'Report of ANNOUNCE.CMD activity'
  1759. call lineout report, m_txt
  1760. m_txt = date('U')
  1761. call lineout report, m_txt
  1762. m_txt = ''
  1763. call lineout report, m_txt
  1764.  
  1765. /* get today's date, create an index from it */
  1766. day_index = SPECIFIED_DATE_IN_DAYS( DATE('U') )
  1767.  
  1768. /* set some defaults */
  1769.  
  1770. nfile.0 = 0
  1771. files.0 = 0             /* will increment */
  1772. file_index = 0
  1773.  
  1774. lmargin = 16         /* how far from the left margin the ED Marker should be */
  1775. llength = 45                 /* this is how long each line segment should be */
  1776. EDMarker = '>'        /* Set EDMarker to your extended description character */
  1777.  
  1778. spaces = SubStr(Copies(' ', 80), 1, lmargin)||EDMarker||' '
  1779.  
  1780. /* set up the array elements of FILES which will be used by
  1781. MPM_AnnounceFiles() at the end of all this processing.
  1782. See TANN.CMD included with MPBeta for details.   */
  1783.  
  1784. files.msgpath = 'D:\LORA\MSG\USERS'
  1785. files.msgtype = 'SQUISH'
  1786. files.msgflag = 'CRASH'
  1787. files.to = 'ALL'
  1788. files.toaddr = '1:102/1316.0'
  1789. files.header = 'New files online at Miles Enterprises BBS'
  1790. files.from = 'Elliott Goodman'
  1791. files.fromaddr = '1:102/1319.0'
  1792. files.footer = '- Elliott'
  1793.  
  1794. /* your origin info */
  1795. files.origin = 'Miles Enterprises * 805-264-0200 *'
  1796.  
  1797. /* my first 44 areas are on the CD so I start with 44 (and increment it
  1798. immediately.) This saves time since the CD is slow. */
  1799. mpmarea = 44
  1800.  
  1801. do forever              /* we'll bail out after the last area */
  1802.    mpmarea = MPM_QueryArea(mpmarea) /* look at next area */
  1803.    if mpmarea = 'ERROR' then do
  1804.       leave             /* this will bail us out */
  1805.       end /* if error (past last file area) */
  1806.  
  1807. /* get drive/subdir of next file area */
  1808.    area_path = MPM_QueryAreaInfo(mpmarea, '1')
  1809.  
  1810. /* notify user of our progress */
  1811.    say area_path ;
  1812.  
  1813. /* use SysFileTree here to check for new files */
  1814.    call SysFileTree area_path, stuff, 'F'
  1815.  
  1816. /* reset before each file area */
  1817.    found_new = 0
  1818.    nfile.0 = 0
  1819.  
  1820. /* assume at least one file in the file area */
  1821.    do i = 1 to stuff.0      /* cycle thru files in one area */
  1822.  
  1823. /* get info on each file in the area */
  1824.    parse var stuff.i,
  1825.          file_date,
  1826.          file_time,
  1827.          file_size,
  1828.          file_attr,
  1829.          file_name
  1830.  
  1831. /* remove trailing space */
  1832.    file_name = strip( file_name )
  1833.  
  1834. /* remove drive/subdir info from filename */
  1835.    parse var file_name (area_path) file_name
  1836.  
  1837. /* convert to caps, just in case */
  1838.    file_name = translate( file_name )
  1839.  
  1840. /* get extention. We don't want to announce FILES.BBS or FILES.BAK! */
  1841.    parse var file_name junk '.' extn
  1842.  
  1843.    if extn = 'BAK' then do
  1844.       iterate
  1845.       end
  1846.  
  1847.    if extn = 'BBS' then do
  1848.       iterate
  1849.       end
  1850.  
  1851. /* test if next file is dated today, hence NEW */
  1852.    file_test = SPECIFIED_DATE_IN_DAYS( file_date )
  1853.    if file_test = day_index then do
  1854.  
  1855. /* here's where the ver. 1.1 code makes it's major changes. Store the
  1856. files that are new and do them all at once for each area */
  1857.       found_new = 1
  1858.       nfile.0 = nfile.0 + 1
  1859.       t_index = nfile.0
  1860.       nfile.t_index = file_name
  1861.       end /* if file_test = day_index */
  1862.  
  1863.    end /* do i = 1 to stuff.0 */
  1864.  
  1865. /* now, if we found one or more new files in this area... */
  1866.    if found_new = 1 then do
  1867.  
  1868. /* we have to open the files.bbs file so we can get the
  1869. description */
  1870.       retval = MPM_OpenArea(mpmarea)
  1871.  
  1872. /* this just gives the system time to open the file */
  1873.       Call SysSleep 3
  1874.  
  1875. /* ....cycle thru the new files for this area */
  1876.       do k = 1 to nfile.0
  1877.  
  1878. /* continue storing elements in FILES */
  1879.          file_index = file_index + 1
  1880.          files.0 = files.0 + 1
  1881.          files.file_index.path = area_path
  1882.          files.file_index.file = nfile.k
  1883.  
  1884.          text = MPM_QueryFileInfo(mpmarea, nfile.k, '3')
  1885.  
  1886. /* just in case no description was Tic'd... */
  1887.          if text = 'ERROR' then do
  1888.             text = 'No Description!'
  1889.             end
  1890.  
  1891. /* here's where we format the file description!   */
  1892.  
  1893. /* Translate all CRs, LFs and Extended Description Markers into spaces */
  1894.          ntext = Translate(text, '   ', x2c('0d')||x2c('0a')||EDMarker)
  1895.  
  1896.          text = GetOneLine(llength, ntext)
  1897.          ntext = Space(DelWord(ntext, 1, Words(text)), 1)
  1898.          Do While Length(ntext) \= 0
  1899.             wText = GetOneLine(llength, ntext)
  1900.             text = text||x2c('0d')||x2c('0a')||spaces||wText
  1901.             ntext = Space(DelWord(ntext, 1, Words(wText)), 1)
  1902.             End
  1903.  
  1904. /* the following two lines replace the extra space between
  1905. parentesis that was removed: (  0) */
  1906.          text = overlay(' ',text,1,1)
  1907.          text = '('||text
  1908.  
  1909.          retval = MPM_SetFileInfo(mpmarea, nfile.k, '2', text)
  1910.  
  1911.          text = Space(Translate(text, ' ', '>'), 1)
  1912.          files.file_index.desc = text
  1913.          end /* do k to nfile.0 */
  1914.  
  1915. /* close the files.bbs file to avoid problems */
  1916.       retval = MPM_CloseArea(mpmarea)
  1917.       end /* if  found = 1 */
  1918.  
  1919.    end /* do forever */
  1920.  
  1921. /* if no new files: exit */
  1922. if files.0 = 0 then do
  1923.    m_txt = 'No new files found'
  1924.    call lineout report, m_txt
  1925.    exit
  1926.    end
  1927.  
  1928. /* there are new files. Save the info so we can play
  1929. with the descriptions when we wake up <g> */
  1930.  
  1931. m_txt = 'List of New Files'
  1932. call lineout report, m_txt
  1933. m_txt = ' '
  1934. call lineout report, m_txt
  1935.  
  1936. do j = 1 to files.0
  1937.    m_txt = 'File Path = ' files.j.path
  1938.    call lineout report, m_txt
  1939.    m_txt = 'File Name = ' files.j.file
  1940.    call lineout report, m_txt
  1941.    m_txt = 'File Description = ' files.j.desc
  1942.    call lineout report, m_txt
  1943.    m_txt = ' '
  1944.    call lineout report, m_txt
  1945.    end
  1946.  
  1947. /* actually make the announcement */
  1948. retval = MPM_AnnounceFiles('files')
  1949.  
  1950. m_txt = files.0 'new files announced!'
  1951. call lineout report, m_txt
  1952.  
  1953. /* and we're done */
  1954. exit
  1955.  
  1956. /*------------------------------------------------*/
  1957. /* Convert calendar date to consistent date index                  */
  1958. /*------------------------------------------------*/
  1959. SPECIFIED_DATE_IN_DAYS:
  1960.    Procedure
  1961.  
  1962. parse arg,
  1963.    mm '/',
  1964.    dd '/',
  1965.    yy
  1966.  
  1967. days_by_month = '31 28 31 30 31 30 31 31 30 31 30 31'
  1968. current_number_of_days = (yy * 365) + dd
  1969. do m = 1 while m < mm
  1970.    current_number_of_days = current_number_of_days +,
  1971.       WORD( days_by_month, m )
  1972. end
  1973. return current_number_of_days
  1974.  
  1975. /*   This subroutine and all format description routines written by
  1976.       Craig Morrison, author of MaxFilePM.
  1977.     GetOneLine takes a variable length string and returns a blank delimited
  1978.     string that is a substring of inText and is no longer than llen
  1979.     characters.
  1980.  
  1981.     A single word that is longer than llen is simply truncated at llen when it
  1982.     would be the only word in a line segment and not wrappable. Its cheesy and
  1983.     cheap, but hey, it works.. ;-)
  1984. */
  1985.  
  1986. GetOneLine:
  1987.  
  1988.     Parse Arg llen, inText
  1989.  
  1990.     cText = ''
  1991.     Do While Length(cText' 'Word(inText, 1)) < llen
  1992.         cText = cText' 'Word(inText, 1)
  1993.         inText = DelWord(inText, 1, 1)
  1994.         If inText = '' Then Leave
  1995.     End
  1996.  
  1997.     if cText = '' Then Do
  1998.         cText = Left(inText, llen)
  1999.     End
  2000.  
  2001. Return Space(cText, 1)
  2002.  
  2003.  
  2004. ΓòÉΓòÉΓòÉ 7.2. FILELIST.CMD ΓòÉΓòÉΓòÉ
  2005.  
  2006. /* MPM_QueryFileList() example */
  2007.  
  2008. Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  2009.  
  2010. mpmarea = 'TEST'
  2011.  
  2012. /* Open up the file area */
  2013. retval = MPM_OpenArea(mpmarea)
  2014.  
  2015. /* Give the open call a chance to work */
  2016. Call SysSleep 3
  2017.  
  2018. If MPM_IsAreaOpen(mpmarea) = '0' then Exit
  2019.  
  2020. rc = MPM_QueryFileList(mpmarea, 'files')
  2021.  
  2022. rc = MPM_CloseArea(mpmarea)
  2023.  
  2024. Say 'There are 'files.0' files in the list.'
  2025. Say
  2026. Say files.1.file' is the first file.'
  2027. Say files.1.path' is the path of the first file.'
  2028. Say files.1.desc' is the description of the first file.'
  2029.  
  2030. Say
  2031. Say 'Click SEND to quit.'
  2032. Pull .
  2033.  
  2034.  
  2035. ΓòÉΓòÉΓòÉ 7.3. LISTAREA.CMD ΓòÉΓòÉΓòÉ
  2036.  
  2037. /* LISTAREA.CMD Lists all available file areas */
  2038.  
  2039. rc = MPM_QueryAreaList('arealist')
  2040.  
  2041. do i = 1 to arealist.0
  2042.     Say arealist.i.area' - 'arealist.i.desc
  2043. end
  2044.  
  2045. Say
  2046. Say 'Click SEND to quit.'
  2047. Pull .
  2048.  
  2049.  
  2050. ΓòÉΓòÉΓòÉ 7.4. TANN.CMD ΓòÉΓòÉΓòÉ
  2051.  
  2052. /* Test MPM_AnnounceFiles(..)                                              */
  2053. /*                                                                         */
  2054. /* This example shows how to define ALL the fields for a file announcement */
  2055. /* Please note that by using MPM_QueryFileList(..) you can generate the    */
  2056. /* the stem needed to create a file announcement. All you have to do after */
  2057. /* calling that function is filter out the files you don't want, then fill */
  2058. /* in the message information before calling MPM_AnnounceFiles(..).        */
  2059.  
  2060. files.0 = 1
  2061. files.1.path = 'D:\bcos2\maxfile\'
  2062. files.1.file = 'mpm1_20.zip'
  2063. files.1.desc = 'MaxFile/PM 1.20, A FILES.BBS Manager for Presentation Manager'
  2064.  
  2065. /* Path to the message area, REQUIRED                                      */
  2066. files.msgpath  = 'D:\Max\Msg\Public'
  2067.  
  2068. /* Mail tosser/packer information, optional                                */
  2069. files.msgproc  = 'd:\squish\sq386p -cd:\squish\squish.cfg squash link -fWORKCHAT'
  2070.  
  2071. /* Message area type: SQUISH, MSG or MSGECHO. REQUIRED                     */
  2072. files.msgtype  = 'SQUISH'
  2073.  
  2074. /* Message flag; HOLD, NORMAL or CRASH. REQUIRED                           */
  2075. files.msgflag  = 'NORMAL'
  2076.  
  2077. /* Who to address the message to, defaults to 'All' if not defined         */
  2078. files.to       = 'Elliott Goodman'
  2079.  
  2080. /* The fidonet address for who the message is addressed to                 */
  2081. /* All four elements are REQUIRED, defaults to *.fromaddr if not defined   */
  2082. files.toaddr   = '1:102/1319.0'
  2083.  
  2084. /* Who the message is from, REQUIRED                                       */
  2085. files.from     = 'Craig Morrison'
  2086.  
  2087. /* Fidonet address of who the message is from, REQUIRED                    */
  2088. files.fromaddr = '1:201/60.0'
  2089.  
  2090. /* Optional header text for the message                                    */
  2091. files.header   = 'Check this out:'
  2092.  
  2093. /* Optional footer text for the message                                    */
  2094. files.footer   = "Slick ain't it?"
  2095.  
  2096. /* Optional subject line, defaults to 'File Announcement' if not defined   */
  2097. files.subject  = 'REXX MPM_AnnounceFiles(..) Test'
  2098.  
  2099. /* Optional origin information, if not defined, no origin line is created  */
  2100. files.origin   = 'Workplace Connection * (317) 742-2680'
  2101.  
  2102. /* The call itself, returns 'ERROR' if something goes wrong                */
  2103. retval = MPM_AnnounceFiles('files')
  2104.  
  2105. rc = MPM_MsgBox(retval, 'MPM_AnnounceFiles Result')
  2106.  
  2107.  
  2108. ΓòÉΓòÉΓòÉ 7.5. TESTREXX.CMD ΓòÉΓòÉΓòÉ
  2109.  
  2110. /* TEXTREXX.CMD - Sample REXX command file for testing MaxFile/PM's REXX     */
  2111. /* macro extensions.                                                         */
  2112.  
  2113. Say 'MaxFile/PM demo in progress.'
  2114.  
  2115. Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  2116.  
  2117.  
  2118. /* MPM_GetVersion() returns MaxFile/PM's revision number.                    */
  2119.  
  2120. mpmver = MPM_GetVersion()
  2121.  
  2122.  
  2123. /* MPM_MsgBox(message, title) displays a simple message box using 'message'  */
  2124. /* as the text displayed in the message box and 'title' as the title for the */
  2125. /* message box.                                                              */
  2126.  
  2127. rc = MPM_MsgBox('Version 'mpmver, 'MaxFile/PM - Query Version Number')
  2128.  
  2129.  
  2130. /* MPM_QueryArea([area tag]) works in two different ways.                    */
  2131. /* Called with no arguments it returns the area tag of the first file area   */
  2132. /* listed in the Main File Area window listing.                              */
  2133. /* When called with a single argument containing the area tag of an existing */
  2134. /* file area, it will return the area tag of the NEXT file area in the list. */
  2135. /* In either case, if an area can't be found it returns 'ERROR'.             */
  2136.  
  2137. mpmarea = MPM_QueryArea()
  2138. rc = MPM_MsgBox(mpmarea, 'MaxFile/PM - Query File Area')
  2139.  
  2140.  
  2141. /* MPM_DeselectArea(area tag) detags a file area in the Main File Area       */
  2142. /* window.                                                                   */
  2143.  
  2144. retval = MPM_DeselectArea(mpmarea)
  2145. rc = MPM_MsgBox(retval, 'MaxFile/PM - Deselect File Area Results')
  2146.  
  2147.  
  2148. /* See the MPM_QueryArea() comments above.                                   */
  2149.  
  2150. mpmarea = MPM_QueryArea(mpmarea)
  2151. rc = MPM_MsgBox(mpmarea, 'MaxFile/PM - Query Next File Area')
  2152.  
  2153.  
  2154. /* MPM_SelectArea(area tag) tags a file area in the Main File Area Window.   */
  2155.  
  2156. retval = MPM_SelectArea(mpmarea)
  2157. rc = MPM_MsgBox(retval, 'MaxFile/PM - Select File Area Results')
  2158.  
  2159.  
  2160. /* MPM_OpenArea(area tag) opens a FILES.BBS Window.                          */
  2161.  
  2162. retval = MPM_OpenArea(mpmarea)
  2163. rc = MPM_MsgBox(retval, 'MaxFile/PM - Open File Area Results')
  2164.  
  2165.  
  2166. /* MPM_IsAreaOpen(area tag) returns "1" if the FILES.BBS window associated   */
  2167. /* with 'area tag' is open, "0" otherwise.                                   */
  2168.  
  2169. retval = MPM_IsAreaOpen(mpmarea)
  2170. rc = MPM_MsgBox(retval, 'MaxFile/PM - Is File Area Open Results')
  2171.  
  2172.  
  2173. /* MPM_SetFDUFlag(area tag) sets the File Database Utility flag for the      */
  2174. /* FILES.BBS that is associated with 'area tag.' Use this to tell MaxFile/PM */
  2175. /* that the File Database Utility needs to be run to update your file        */
  2176. /* database after making changes that MaxFile/PM doesn't know about.         */
  2177.  
  2178. /* retval = MPM_SetFDUFlag(mpmarea) */
  2179. /* rc = MPM_MsgBox(retval, 'MaxFile/PM - Set FD Utility Flag Results') */
  2180.  
  2181.  
  2182. /* MPM_CloseArea(area tag) closes the FILES.BBS window associated with 'area */
  2183. /* tag.'                                                                     */
  2184.  
  2185. retval = MPM_CloseArea(mpmarea)
  2186. rc = MPM_MsgBox(retval, 'MaxFile/PM - Close File Area Results')
  2187.  
  2188.  
  2189. /* MPM_QueryAreaInfo(area tag, '0' | '1' | '2') queries and returns the      */
  2190. /* specified information for 'area tag.' The level info is as follows:       */
  2191. /*                                                                           */
  2192. /*                      0 - Area description                                 */
  2193. /*                      1 - Download Path                                    */
  2194. /*                      2 - FILES.BBS Location                               */
  2195.  
  2196. areainfo = MPM_QueryAreaInfo(mpmarea, '0')
  2197. rc = MPM_MsgBox('Description = 'areainfo,,
  2198.                 'MaxFile/PM - Query Area Info Results')
  2199.  
  2200. areainfo = MPM_QueryAreaInfo(mpmarea, '1')
  2201. rc = MPM_MsgBox('Download Path = 'areainfo,,
  2202.                 'MaxFile/PM - Query Area Info Results')
  2203.  
  2204. areainfo = MPM_QueryAreaInfo(mpmarea, '2')
  2205. rc = MPM_MsgBox('FILES.BBS Location = 'areainfo,,
  2206.                 'MaxFile/PM - Query Area Info Results')
  2207.  
  2208.  
  2209. /*****************************************************************************/
  2210. /*                                                                           */
  2211. /* What follows is a simple example of querying information about an open    */
  2212. /* file area.                                                                */
  2213. /*                                                                           */
  2214. /*****************************************************************************/
  2215.  
  2216. mpmarea = 'TEST'
  2217.  
  2218. /* Open up the file area */
  2219. retval = MPM_OpenArea(mpmarea)
  2220.  
  2221. /* Give the open call a chance to work */
  2222. Call SysSleep 3
  2223.  
  2224. /* Loop until the file area is open */
  2225. areaopen = '0'
  2226. do until areaopen \= '0'
  2227.     Call SysSleep 1
  2228.     areaopen = MPM_IsAreaOpen(mpmarea)
  2229. end
  2230.  
  2231. /* MPM_QueryFile(area tag[, filename]) returns the base filename of a        */
  2232. /* file from a FILES.BBS window. When called with just the area tag of an    */
  2233. /* open window it returns the first file in the window. When called with     */
  2234. /* both the area tag and an existing filename it will return the NEXT        */
  2235. /* filename in the window. If something goes wrong it returns ERROR.         */
  2236.  
  2237. /* Query the filename of the first file */
  2238. filename = MPM_QueryFile(mpmarea)
  2239. rc = MPM_MsgBox('File = 'filename, 'MaxFile/PM - Query File Results')
  2240.  
  2241. if filename = 'ERROR' then do
  2242.     exit
  2243. end
  2244.  
  2245. /* Query the next filename */
  2246. filename = MPM_QueryFile(mpmarea, filename)
  2247. rc = MPM_MsgBox('File = 'filename, 'MaxFile/PM - Query File Results')
  2248.  
  2249. /* MPM_QueryFileInfo(area tag, filename, '0' | '1' | '2' | '3') queries      */
  2250. /* and returns the specified information about 'filename.' The level         */
  2251. /* information is as follows:                                                */
  2252. /*                                                                           */
  2253. /*                     0 - File Path                                         */
  2254. /*                     1 - File Date in DD MMM YYYY format                   */
  2255. /*                     3 - File Size                                         */
  2256. /*                     4 - File Description                                  */
  2257.  
  2258. fileinfo = MPM_QueryFileInfo(mpmarea, filename, '0')
  2259. rc = MPM_MsgBox('Filepath = 'fileinfo, 'MaxFile/PM - Query File Info Results')
  2260.  
  2261.  
  2262. /* MPM_SelectFile/MPM_DeselectFile(area tag, filename) select and            */
  2263. /* deselect 'filename', respectively, in the area identified by 'area        */
  2264. /* tag'.                                                                     */
  2265.  
  2266. retval = MPM_SelectFile(mpmarea, filename)
  2267. rc = MPM_MsgBox(filename' selected!', 'Select File')
  2268.  
  2269. fileinfo = MPM_QueryFileInfo(mpmarea, filename, '1')
  2270. rc = MPM_MsgBox('Filedate = 'fileinfo, 'MaxFile/PM - Query File Info Results')
  2271.  
  2272. fileinfo = MPM_QueryFileInfo(mpmarea, filename, '2')
  2273. rc = MPM_MsgBox('Filesize = 'fileinfo, 'MaxFile/PM - Query File Info Results')
  2274.  
  2275. fileinfo = MPM_QueryFileInfo(mpmarea, filename, '3')
  2276. rc = MPM_MsgBox('File description = 'fileinfo,,
  2277.                 'MaxFile/PM - Query File Info Results')
  2278.  
  2279. retval = MPM_DeselectFile(mpmarea, filename)
  2280. rc = MPM_MsgBox(filename' deselected!', 'Deselect File')
  2281.  
  2282.  
  2283. /* MPM_SetFileInfo(area tag, filename, '0' | '1' | '2') set the displayed    */
  2284. /* information for a file in a FILES.BBS window. The level information is    */
  2285. /* as follows:                                                               */
  2286. /*                                                                           */
  2287. /*                         0 - Set File Date                                 */
  2288. /*                         1 - Set File Size                                 */
  2289. /*                         2 - Set Description                               */
  2290. /*                                                                           */
  2291. /* Please note that options 0 and 1 are only for display purposes, if you    */
  2292. /* want to set the file's date ("touch" it) you need to perform this         */
  2293. /* yourself, MaxFile/PM does not do this for you, the same goes for the      */
  2294. /* file's size. This REXX extension is merely to update the display in       */
  2295. /* the FILES.BBS window. Option 2, for setting descriptions, does            */
  2296. /* actually alter the description that will get saved for the file.          */
  2297.  
  2298. /* retval = MPM_SetFileInfo(mpmarea, filename, '2', 'Set with TESTREXX.CMD') */
  2299. /* rc = MPM_MsgBox(retval, 'Set File Info Results') */
  2300.  
  2301.  
  2302. /* MPM_RemoveFile(area tag, filename) removes the file 'filename' from       */
  2303. /* the FILES.BBS window associated with 'area tag'.                          */
  2304.  
  2305. /* retval = MPM_RemoveFile(mpmarea, filename) */
  2306. /* rc = MPM_MsgBox(retval, 'Remove File results') */
  2307.  
  2308.  
  2309. /* MPM_AddFile(area tag, filename, description) adds 'filename' with         */
  2310. /* description to the FILES.BBS window associated with 'area tag'.           */
  2311. /* 'filename' MUST be a FULL file specification in the form of               */
  2312. /* D:\PATH\FILENAME.EXE! The function returns 'ERROR' if something goes      */
  2313. /* wrong.                                                                    */
  2314.  
  2315. /* retval = MPM_AddFile(mpmarea, 'd:\test\ivtech.zip', 'New File from REXX') */
  2316. /* rc = MPM_MsgBox(retval, 'Add File Results') */
  2317.  
  2318.  
  2319. /* Close the file area */
  2320. retval = MPM_CloseArea(mpmarea)
  2321.  
  2322. /* MPM_Crc32(filename) returns a CRC32 for the specified file or ERROR if    */
  2323. /* something goes wrong.                                                     */
  2324. crc = MPM_Crc32('MPM1_20.ZIP')
  2325. rc = MPM_MsgBox('MPM1_20.ZIP CRC32 = 'crc, 'MPM_Crc32 Results')
  2326.  
  2327.  
  2328. rc = MPM_MsgBox('REXX Demo Complete!', 'MaxFile/PM - REXX Demo')
  2329.  
  2330.  
  2331. ΓòÉΓòÉΓòÉ 7.6. NEWFILES.CMD ΓòÉΓòÉΓòÉ
  2332.  
  2333. /* Sample MaxFile/PM New Files Search script */
  2334. '@echo off'
  2335. fAreas = 'FWAPPS FWBBS FWCOMM FWPROG FWREXX FWSYSUTL FWUTILS IBMINFO WINDATA'
  2336. fAreas = fAreas||' WINGAME WINGRAF WINPRNT WINPROG WINSOUN WINSYST WINUTIL'
  2337. fAreas = fAreas||' WINWORD'
  2338.  
  2339. /* Load just the REXXUTIL functions we need */
  2340. Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  2341.  
  2342. tDate = DATE('O')
  2343. Parse Var tDate tYear '/' tMonth '/' tDay
  2344.  
  2345. Say 'Beginning new files scan for 'tYear||tMonth||tDay'...'
  2346.  
  2347. newfiles = 0
  2348.  
  2349. Do index = 1 to Words(fAreas)
  2350.     fbbs = MPM_QueryAreaInfo(Word(fAreas, index), '2')
  2351.     If Stream(fbbs, 'c', 'query exists') \= '' Then Do
  2352.         rc = MPM_OpenArea(Word(fAreas, index))
  2353.         Call SysSleep 5
  2354.         If MPM_IsAreaOpen(Word(fAreas, index)) = '1' Then Do
  2355.             Drop fList.
  2356.             Say
  2357.             Say 'Reporting files for area - 'Word(fAreas, index)'.'
  2358.             rc = MPM_QueryFileList(Word(fAreas, index), 'fList')
  2359.             rc = MPM_CloseArea(Word(fAreas, index))
  2360.             If fList.0 \= 0 Then Do
  2361.                 Do fIndex = 1 to fList.0
  2362.                     fDate = Stream(fList.fIndex.path||fList.fIndex.file,,
  2363.                                    'c', 'query datetime')
  2364.                     Parse Var fDate fMonth '-' fDay '-' fYear .
  2365.                     If tYear||tMonth||tDay = fYear||fMonth||fDay Then Do
  2366.                         Say
  2367.                         Say '  'fList.fIndex.file' is a new file.'
  2368.                         newfiles = newfiles + 1
  2369.                     End
  2370.                 End
  2371.             End
  2372.         End
  2373.     End
  2374. End
  2375.  
  2376. Say
  2377. Say 'New file scan complete, 'newfiles' found.'
  2378. Say 'Click SEND to quit...'
  2379. Pull .
  2380.  
  2381.  
  2382. ΓòÉΓòÉΓòÉ 8. Known Problems ΓòÉΓòÉΓòÉ
  2383.  
  2384. In a system as configurable as OS/2 there are always going to be problems, this 
  2385. section is devoted to those problems and in some cases work-arounds. If you are 
  2386. having trouble with MaxFile/PM this is the first place to look to see if you 
  2387. can find some help. 
  2388.  
  2389.  
  2390. ΓòÉΓòÉΓòÉ 8.1. Lora's FILEIDX.EXE ΓòÉΓòÉΓòÉ
  2391.  
  2392. Lora-BBS File index maintenance utility 
  2393.  
  2394. Make sure that you specify the files IDX file that you want rebuilt in the Main 
  2395. Settings dialog box. For example: 
  2396.  
  2397.                         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2398. File Database Utility   Γöé E:\LORA\FILEIDX E:\LORA\FILES.IDX  Γöé
  2399.                         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2400.  
  2401. MaxFile/PM will take care of the rest. (The "AREA .. .. .." part.) 
  2402.  
  2403.  
  2404. ΓòÉΓòÉΓòÉ 8.2. CONTAINER DISPLAY CORRUPTION ΓòÉΓòÉΓòÉ
  2405.  
  2406. Moving vertical separator bar messes up highlighting 
  2407.  
  2408. The Service Pack for OS/2 2.1 screwed up the way the highlighting is handled 
  2409. when the vertical separator bar is moved. I didn't it break folks, IBM did. 
  2410.  
  2411.  
  2412. ΓòÉΓòÉΓòÉ 8.3. MAXFMPM.INI CORRUPTION ΓòÉΓòÉΓòÉ
  2413.  
  2414. MAXFMPM.INI gets trashed if a REXX script bombs out and won't quit. 
  2415.  
  2416. Always keep a backup of your MAXFMPM.INI file someplace safe. I need specific 
  2417. examples of scripts that I can use to recreate the problem. I'm not sure what 
  2418. is causing it, but I am looking into it. 
  2419.  
  2420. The key to safety is to backup before you start a new script and try to debug 
  2421. it to get it to work.